Python入門基礎(chǔ)知識(shí)梳理【生長(zhǎng)吧!Python】
前言
1. Python能用來干嘛
2. 安裝Python和HelloWorld
2.1 下載
2.2 shell命令
2.3 第一個(gè)程序
3. 輸入輸出
3.1 輸入
3.2 輸出
3.3 使用
4. 基本語(yǔ)法
4.1 縮進(jìn)
4.2 注釋
4.3 標(biāo)識(shí)符
4.4 保留字
5. 常量變量運(yùn)算符
5.1 常量
5.2 變量
5.3 運(yùn)算符
5.3.1 算術(shù)運(yùn)算符
5.3.2 比較運(yùn)算符
5.3.3 賦值運(yùn)算符
6. 數(shù)據(jù)類型
6.1 基本數(shù)據(jù)類型
6.2 高級(jí)數(shù)據(jù)類型
6.2.1 字符串
6.2.2 列表
6.2.3 元組
6.2.4 字典
6.2.5 集合
6.2.6 下標(biāo)
6.2.7 切片,步長(zhǎng)
7. 分支控制語(yǔ)句
7.1 循環(huán)控制語(yǔ)句
7.1.1 for循環(huán)
7.1.2 while循環(huán)
7.2 條件控制語(yǔ)句
7.2.1 if單支
7.2.2 if…else…
7.2.3 if…elif…elif…else…
7.3 break
7.4 continue
8. 函數(shù)式編程
8.1 作用
8.2 定義
8.2.1 無(wú)參函數(shù)
8.2.2 有參函數(shù)
8.3 返回值
8.4 優(yōu)點(diǎn)
8.5 缺點(diǎn)
9. 面向?qū)ο缶幊?/p>
9.1 作用
9.2 使用
9.3 定義
9.4 構(gòu)造方法
9.5 封裝
9.6 繼承
9.7 魔術(shù)方法
10. 進(jìn)階操作
10.1 異常處理
10.2 文件操作
10.3 常用模塊
10.3.1 os模塊
10.3.2 time模塊
10.3.3 random模塊
10.3.4 re模塊
10.4 多線程
10.4.1 無(wú)序性
10.4.1 自定義線程類
10.4.3 守護(hù)線程
10.5 pymysql
10.6 模塊與包
10.6.1 模塊
10.6.2 包
前言
現(xiàn)在不是一直都在吹Python嗎,說什么小學(xué)都要出Python的教材了,搞得好像這年頭不會(huì)個(gè)Python還不如小學(xué)生一樣!
既然如此,那么?你會(huì)Python嗎?
不會(huì)?不要緊!一篇文帶你入門Python!一篇文帶你疏通Python基礎(chǔ)語(yǔ)法!
會(huì)?行吧,別急著走嘛!看看吧。畢竟,溫故而知新,可以為師矣!
Python作為一門高級(jí)編程語(yǔ)言嗎,最大的特點(diǎn)就是簡(jiǎn)單易學(xué)
來看看Python是如何在C/C++,Java等語(yǔ)言中脫穎而出的吧
1. Python能用來干嘛
由于Python的第三方類庫(kù)實(shí)在是太多了,因此它能做的事情也是極多的,甚至你也可以自己做一些類庫(kù)放在網(wǎng)上讓別人使用。
這其一呢,Python可以做我們的PC客戶端,也就是PC端的QQ,百度網(wǎng)盤之類的需要下載安裝的軟件
這其二呢,Python還能做點(diǎn)PC端的小游戲,比如什么植物大戰(zhàn)僵尸,魂斗羅,飛機(jī)大戰(zhàn)的
這其三呢,Python還能搭建網(wǎng)站,做我們經(jīng)常用的類似于百度,CSDN,華為云社區(qū)這些
這其四呢,Python還可以做網(wǎng)絡(luò)爬蟲,就是不需要我們手動(dòng)的去網(wǎng)絡(luò)上下載數(shù)據(jù),代碼一鍵把 所有數(shù)據(jù)拿下來(當(dāng)然也很有風(fēng)險(xiǎn))
這其五呢,Python可以做數(shù)據(jù)分析,就是把我們從網(wǎng)絡(luò)上爬取的數(shù)據(jù)進(jìn)行分類,放在一起,便于查詢,把我們不需要的數(shù)據(jù)丟掉之類的
這其六呢,Python還可以做AI,也就是人工智能
這其七呢,Python可以做自動(dòng)化辦公,也就是自動(dòng)填寫表格,自動(dòng)處理數(shù)據(jù)之類的
這其八呢,Python還可以做自動(dòng)化運(yùn)維
當(dāng)然除了這些,還能做些別的,我就不一一道來了,因?yàn)橐粋€(gè)人精力有限,也是沒法全部學(xué)完的,就說這么多吧
…
2. 安裝Python和HelloWorld
2.1 下載
可以去官網(wǎng)下載——官網(wǎng)
下載后傻瓜式安裝,不過有一步需要注意的是:Add to path的地方需要勾一下
不勾選的話需要手動(dòng)配置環(huán)境,異常麻煩
2.2 shell命令
安裝好以后,我們Ctrl + R輸入cmd打開命令行
在命令行輸入我們所學(xué)語(yǔ)言的名字:python
會(huì)看到這個(gè)符號(hào):>>> 這個(gè)就是Python自帶的交互模式
2.3 第一個(gè)程序
而我們只需要輸入print("HelloWprld")
就能讓計(jì)算機(jī)給我們顯示一個(gè)HelloWorld出來
而在括號(hào)里面,引號(hào)里面,我們可以進(jìn)行修改,來改變屏幕顯示的內(nèi)容
引號(hào)的意思:引號(hào)在Python里面是有字符串的意思
當(dāng)然,你也可以在括號(hào)里面輸入1+1等運(yùn)算來讓計(jì)算機(jī)給你計(jì)算結(jié)果
3. 輸入輸出
顧名思義,輸入就是你用鍵盤輸入,輸出就是計(jì)算機(jī)輸出給你內(nèi)容
3.1 輸入
輸入我們需要用到一個(gè)內(nèi)置函數(shù):input()漢語(yǔ)意思也是輸入,在Python中的作用也是輸出
覺得不好理解可以這么理解:
input()表示我對(duì)電腦說的話
3.2 輸出
輸出我們需要用到一個(gè)內(nèi)置函數(shù):print()漢語(yǔ)意思是打印,就是打印內(nèi)容到你的屏幕上
而這個(gè)print函數(shù),也是我們HelloWorld入門實(shí)戰(zhàn)的函數(shù)
print()表示電腦對(duì)我說的話
3.3 使用
設(shè)計(jì)一個(gè)小程序?qū)崿F(xiàn)輸入什么內(nèi)容就輸出什么內(nèi)容
代碼:
print(input()) # 意思是在輸出函數(shù)里面使用輸入函數(shù)
看著很簡(jiǎn)單,但是其實(shí)還設(shè)計(jì)了函數(shù)返回值的知識(shí),這里就只提一下
在input()函數(shù)的括號(hào)里可以像print()函數(shù)一樣寫東西,他會(huì)在你運(yùn)行代碼之后顯示
你可以用這個(gè)來設(shè)置輸入的提示信息
4. 基本語(yǔ)法
每個(gè)語(yǔ)言都有自己的語(yǔ)法,不同語(yǔ)言的語(yǔ)法也不盡相同
4.1 縮進(jìn)
在別的語(yǔ)言中使用大括號(hào)來表示一個(gè)代碼塊
而在Python中使用縮進(jìn)來規(guī)定一個(gè)代碼塊
縮進(jìn)一般以四個(gè)空格為標(biāo)準(zhǔn)
縮進(jìn)錯(cuò)誤會(huì)報(bào)錯(cuò)顯示語(yǔ)法錯(cuò)誤
錯(cuò)誤縮進(jìn):
print("aa") print("bb")
正確縮進(jìn):
print("aa") print("bb")
4.2 注釋
給自己的程序添加注釋是很有必要的
俗話說得好:
程序員最討厭給自己的代碼寫注釋,更討厭別人的代碼不寫注釋
單行注釋
# 我是單行注釋
多行注釋
“”“多行注釋”""
‘’‘多行注釋’’’
兩種多行注釋都能當(dāng)字符串使用
一定要養(yǎng)成寫注釋的好習(xí)慣,這很重要
4.3 標(biāo)識(shí)符
程序員自己命名的
有自己的規(guī)范
包含數(shù)字,字母,下劃線
不能以數(shù)字開頭
大小寫敏感
一般采用駝峰命名法
首字母小寫,其他單詞首字母大寫
peopleName這樣
類名建議首字母大寫
一定要遵循規(guī)范,這很重要
4.4 保留字
官方規(guī)定的具有某種特定意義的單詞
標(biāo)識(shí)符不能用保留字
Python有33個(gè)保留字
也叫關(guān)鍵字
所有符號(hào)都用英文半角符號(hào)
諸如def class等不是內(nèi)置函數(shù)的單詞
def class if for while 等等等
5. 常量變量運(yùn)算符
5.1 常量
值無(wú)法改變的量
例如數(shù)字1
例如字符串"hello world"
等等
print(1)
5.2 變量
值能改變的量
名字為標(biāo)識(shí)符
使用賦值符號(hào) = 給變量復(fù)制
a = 1這樣
a = 1 b = "www" print(a,b) # 1www
5.3 運(yùn)算符
5.3.1 算術(shù)運(yùn)算符
加:+
減:-
乘:*
除:/
print(1+1) # 2 print(10-2) # 8 print(10*2) # 20 print(10/2) # 5
5.3.2 比較運(yùn)算符
大于:>
小于:<
大于等于:>=
小于等于:<=
print(1==2) # False print(1>2) # False print(10>=5) # True print(5<=1) # Fasle
5.3.3 賦值運(yùn)算符
直接賦值:=
相加賦值:+=
相乘賦值:*=
…
i = 10 # 給i賦值為10 print(i+=1) # 讓i加1 print(i*=2) # 讓i乘2
6. 數(shù)據(jù)類型
6.1 基本數(shù)據(jù)類型
整型
1
100
浮點(diǎn)型
1.1
10.1
布爾型
True
False
復(fù)數(shù)類型
5j+1
1+3j
6.2 高級(jí)數(shù)據(jù)類型
6.2.1 字符串
“hello”
‘hello’
‘’‘hello’’’
“”“hello”""
""" 例子:給出一個(gè)變量a = 1 怎么讓輸出的結(jié)果為:“a的值為:1” 第一個(gè)方法:print(“a的值為:”, a) 第二個(gè)方法:print(“a的值為:{}”.format(a)) 第三個(gè)方法:print(“a的值為:%d”%a) 第四個(gè)方法:print(f"a的值為:{a}") 其實(shí)就是讓我們的字符串中可以添加變量,而第一種的方法在處理一個(gè)字符串中的多個(gè)變量時(shí)是較為麻煩的,這時(shí)候就需要用到下面三個(gè),比較簡(jiǎn)單,我最喜歡的是第四個(gè)方法。因?yàn)閷懗鰜砗?jiǎn)單 """ a = 1 print(“a的值為:”, a) print(“a的值為:{}”.format(a)) print(“a的值為:%d”%a) print(f"a的值為:{a}") # 原生字符串和非原生字符串 # 看代碼看差異 # 1. 原生字符串 print(r'\n\t') # 2. 非原生 print('\n\t')
6.2.2 列表
[1, 2, 3, 4]
[‘a(chǎn)’, ‘b’, ‘c’, ‘d’]
[True, False, False]
增刪改查:
li = [1, 2, 3, 4] li.append(5) # [1, 2, 3, 4, 5] li.remove(5) # [1, 2, 3, 4] li[0] = 10 # # [10, 2, 3, 4] print(li[0], li[1])
6.2.3 元組
(1, 2, 3, 4)
(‘a(chǎn)’, ‘b’, ‘c’, ‘d’)
增刪:
tu = (1, 2, 3, 4) tu1 = (5,) tu2 = tu+tu1 # (1, 2, 3, 4, 5) del tu # 全部刪除
6.2.4 字典
{‘a(chǎn)’: 1, ‘b’: 2}
{1: ‘a(chǎn)’, 2:‘b’}
增刪改查:
dic = {'a': 1, 'b': 2} dic['c'] = 3 # {'a': 1, 'b': 2, 'c': 3} del dic['c'] # {'a': 1, 'b': 2} dic['a'] = 10 # {'a': 10, 'b': 2} print(dic['a']) # 10
6.2.5 集合
(1, 2, 3, 4)
(‘a(chǎn)’, ‘b’,‘c’)
增刪:
se = {1, 2, 3, 4} se.add(5) # {1, 2, 3, 4, 5} se.remove(5) # {1, 2, 3, 4} se.clear() # 全部刪除
6.2.6 下標(biāo)
下面的可以用下標(biāo)來訪問該下標(biāo)的值,下標(biāo)從0開始
print("hello"[0]) # h print([1, 2, 3, 4][1]) # 2 print({1, 2, 3, 4}[2]) # 3 print((1, 2, 3, 4)[3]) # 4 # 下標(biāo):0 1 2 3 print({'a': 1, 'b': 2}['a']) # 1 # 字典以鍵取值,前面是鍵,后面是值
6.2.7 切片,步長(zhǎng)
對(duì)這些類型取某些值,而不是單一的值
print("hello"[0:2]) # 切片出he print([1, 2, 3, 4][0:3:2]) # 從下標(biāo)0到3每二個(gè)取[1, 3] print({1, 2, 3, 4}[0:1]) # 不做注釋了 print((1, 2, 3, 4)[3])
7. 分支控制語(yǔ)句
7.1 循環(huán)控制語(yǔ)句
7.1.1 for循環(huán)
for i in range(10): print(i) # 也可以對(duì)高級(jí)數(shù)據(jù)類型進(jìn)行這樣的操作 a = "Hello World!" for i in range(10): print(a)
7.1.2 while循環(huán)
i = 0 while i<10: print(i) # 也可以對(duì)高級(jí)數(shù)據(jù)類型進(jìn)行這樣的操作 a = "Hello World!" i = 0 while i<10: print(a) i+=1
7.2 條件控制語(yǔ)句
7.2.1 if單支
a = int(input("請(qǐng)輸入一個(gè)整數(shù)")) b = int(input("請(qǐng)輸入一個(gè)整數(shù)")) c = a+b if c<10: print("兩數(shù)之和小于10")
7.2.2 if…else…
a = int(input("請(qǐng)輸入一個(gè)整數(shù)")) b = int(input("請(qǐng)輸入一個(gè)整數(shù)")) c = a+b if c<10: print("兩數(shù)之和小于10") else: print("兩數(shù)之和大于10")
7.2.3 if…elif…elif…else…
a = int(input("請(qǐng)輸入一個(gè)整數(shù)")) b = int(input("請(qǐng)輸入一個(gè)整數(shù)")) c = a+b if c<10: print("兩數(shù)之和小于10") elif c==10: print("兩數(shù)之和等于10") else: print("兩數(shù)之和大于10")
7.3 break
打破分支語(yǔ)句
使分支語(yǔ)句終止
while True: a = input() if a == "q": break else: print(a + " 輸入成功,輸入 'q' 退出程序")
7.4 continue
跳過分支語(yǔ)句
進(jìn)行下一次分支語(yǔ)句
while True: a = input() if a == "q": print("確定要推退出,確定的話,請(qǐng)輸入確定退出來確定") if input() == "確定退出": print("已退出,程序結(jié)束") else: print(a + " 輸入成功,輸入 'q' 退出程序")
8. 函數(shù)式編程
8.1 作用
減少代碼重用率
加快開發(fā)效率
8.2 定義
使用關(guān)鍵字:def定義
8.2.1 無(wú)參函數(shù)
# 定義 def Qinghua(): print("我愛你") print("我要給你生猴子") print("啊啊啊,好喜歡你") # 調(diào)用 Qinghua() def fun(): print("我是無(wú)參函數(shù)") fun()
8.2.2 有參函數(shù)
def PinJie(a, b): str_ = str(a)+str(b) print(str_) for i in str_: print(i) PinJie("sasa", 4564) #也可以這么寫 """ PinJie(a="sasa",b=4564) 這樣寫的好處是 就算你的位置寫錯(cuò)了 參數(shù)傳遞的也還是對(duì)的 也就是說,參數(shù)傳遞的位置不固定 就像這樣 PinJie (b=4564, a='sasa') 是完全一樣的 """
8.3 返回值
return
用于將函數(shù)變成變量使用
函數(shù)名字(參數(shù))就是返回的值
def PinJie(a, b): str_ = str(a)+str(b) return str_ for i in str_: print(i) p = PinJie("sasa", 4564) print(p)
8.4 優(yōu)點(diǎn)
效率高
簡(jiǎn)單
8.5 缺點(diǎn)
不易維護(hù)
開發(fā)效率較面向?qū)ο蟮?/p>
9. 面向?qū)ο缶幊?/p>
9.1 作用
提升開發(fā)效率
增加維護(hù)性
9.2 使用
定義抽象化的類
既實(shí)例化對(duì)象
9.3 定義
使用class關(guān)鍵字定義
三種定義方法
class Person1: pass class Person2(): pass class Person3(object): pass # 使用實(shí)例化對(duì)象 p1 = Person1() p2 = Person2() p3 = Person3()
9.4 構(gòu)造方法
def __init__(self): pass # 給類傳參 class Person3(object): def __init__(self, name. age): pass p3 = Person3('a', 12)
9.5 封裝
在構(gòu)造方法里self.屬性 = 屬性
在屬性名前面加 _
在方法名前面加 _
# 在構(gòu)造方法里self.屬性 = 屬性 class Person1(object): def __init__(self, name, age): self.name = name self.age = age Menger = Person("萌杰爾", 20) name = Menger.name age = Menger.age print("姓名:{} \n年齡:{}".format(name, age)) # 在屬性名前面加 _ class Person2(object): _weight = 70 def __init__(self, name, age, height): self.name = name self.age = age self.height = height def weightPrint(self): print("我的體重是:", self._weight) person = Person("布小禪", 20, 180) person.weightPrint() # 在方法名前面加 _ class Person3(object): def _love(self): print("我暗戀Xxx") def speakLove(self): self._love()
9.6 繼承
在定義類的時(shí)候,寫在類名后面的括號(hào)里
Python支持多繼承
class Person(object, class1, class2): pass
繼承后,該類擁有所繼承的類里面的所有方法和屬性
class Person(object): def __init__(self, name, age): self.name = name self.age = age def speak(self): print(f"{self.age}歲的{self.name}會(huì)說話") class Boy(object,Person): pass boy = Boy ("Menger", 20) boy.speak()
9.7 魔術(shù)方法
_init_ 構(gòu)造方法
_str_ 使實(shí)例化對(duì)象變成字符串
_new_ 先于構(gòu)造方法被執(zhí)行
_call_ 使實(shí)例化對(duì)象擁有函數(shù)性質(zhì)
_del_ 實(shí)例化對(duì)象被刪除時(shí)執(zhí)行
class Person(object): def __str__(self): return "我是__str__方法的返回值,顯示在打印實(shí)例化對(duì)象時(shí)" def __del__(self): print("我沒用了,我被刪除了") def __new__(cls): print("我是__new__方法") return super().__new__(cls) def __call__(self): print("執(zhí)行了__call__方法") return "我是返回值" p = Person() print(p)
10. 進(jìn)階操作
10.1 異常處理
try:…except:…finally:…
冒號(hào)后面接回車
try后面跟有可能錯(cuò)誤的代碼
except后面跟如果錯(cuò)了怎么辦
finally后面跟不管錯(cuò)沒錯(cuò)都要執(zhí)行的代碼
try: print(a) except: print("小伙子,我不認(rèn)識(shí)什么是a啊") finally: print("好好寫代碼,不要老是報(bào)錯(cuò)了啊")
10.2 文件操作
內(nèi)置函數(shù)open()
open(“文件名”, “讀取方式”)
w只寫
r只讀
w+讀寫
wb以二進(jìn)制寫
rb以二進(jìn)制讀
wa追加寫入
""" 測(cè)試文件為text.txt 內(nèi)容為: 我是text.txt 我的作用是測(cè)試文件操作 """ f = open('text.txt', 'r', encoding='utf-8') # 用變量接收,以便于后面的操作 ree = f.read() # 讀取全部 li = f.readlines() # 按行讀取全部行 rre = f.readline() # 只讀取一行 # 測(cè)試三個(gè)函數(shù),運(yùn)行的時(shí)候,記得把別的注釋掉 # 原因是第一個(gè)函數(shù)已經(jīng)把文件的指針挪到最后了,第二個(gè)函數(shù)就讀不到東西 print(ree) f.close() # 使用完記得關(guān)閉文件,免得百變消耗資源,使得程序報(bào)個(gè)內(nèi)存溢出的錯(cuò) f = open('text.txt', 'w', encoding='utf-8') f.write("我是使用write函數(shù)寫入的") f.close() # 這個(gè)方法會(huì)覆蓋原來的,想繼續(xù)寫,只能使用追加方式 f = open('text.txt', 'wa', encoding='utf-8') f.write("我是使用write函數(shù)寫入的") f.write("我是使用write函數(shù)寫入的") f.write("我是使用write函數(shù)寫入的") f.write("我是使用write函數(shù)寫入的") f.close()
10.3 常用模塊
10.3.1 os模塊
路徑,文件,sys
參考我之前的博客:os模塊的簡(jiǎn)單使用
10.3.2 time模塊
計(jì)時(shí),時(shí)間
import time start = time.time() # 當(dāng)前時(shí)間戳 a = 1000**100000 end = time.time() # 獲取計(jì)算完成的時(shí)間戳 runTime = end - start # 計(jì)算所花的時(shí)間 print("本次計(jì)算耗時(shí):{}".format(runTime))
10.3.3 random模塊
隨機(jī)數(shù)
import random # 生成10個(gè)0-10的證書 for i in range(10): print(random.randint(0,10)) # 生成10個(gè)0-1的數(shù) for i in range(10): print(random.random())
10.3.4 re模塊
正則表達(dá)式
""" 正則表達(dá)式用于提取字符串中的某些數(shù)據(jù) """ # 定義一個(gè)字符串 a = "大連科技動(dòng)拉網(wǎng)紅豆味"
10.4 多線程
要先了解進(jìn)程,線程的區(qū)別
進(jìn)程:
拿電腦舉例子的話,進(jìn)程就是QQ,微信等不同的程序
拿py文件舉例子的話,就是你的多幾個(gè)py文件
線程:
拿電腦舉例子的話,就是QQ,微信里你能和好多人一起聊天
拿py文件舉例子的話,就是你在py文件里的許多函數(shù)
10.4.1 無(wú)序性
多線程具有無(wú)序性:
既任務(wù)不會(huì)按順序完成
代碼:
import threading def speak(a=list): for i in a: print("我是",i,"\n") li = [1, 2, 3, 4, 5, 6, 7] li2 = ['1', '2', '3', '4', '5', '6', '7'] s1 = threading.Thread(target=speak, args=(li,)) s2 = threading.Thread(target=speak, args=(li2,)) s1.start() s2.start()
運(yùn)行結(jié)果:
""" 我是 1 我是 我是1 2 我是 我是2 3 我是 3 我是 我是4 4 我是5 5 我是 我是6 6 我是 我是7 7 """
10.4.1 自定義線程類
class MyThead(threading.Therad): def __init__(self,n): super(MyThread,self).__init__() #重構(gòu)run函數(shù)必須寫 self.n = n def run(self) -> None: speak(li) speak(li2) return super().run() def speak(a=list): for i in a: print("我是",i,"\n") li = [1, 2, 3, 4, 5, 6, 7] li2 = ['1', '2', '3', '4', '5', '6', '7'] s1 = MyThead('1') s2 = MyThead('2') s1.start() s2.start()
10.4.3 守護(hù)線程
如果不設(shè)置守護(hù)線程,那么主線程退出后,其他線程仍會(huì)執(zhí)行直到執(zhí)行完畢才會(huì)退出
線程默認(rèn)不是守護(hù)線程,設(shè)置守護(hù)線程的方法是設(shè)置線程函數(shù)的參數(shù)daemon=True
import threading def speak(): print("aaa") t1 = threading.Thread(target=speak, daemon=True) t2 = threading.Thread(target=speak) t3 = threading.Thread(target=speak)
10.5 pymysql
使用Python鏈接數(shù)據(jù)庫(kù)
import pymysql pymsql.connect(host='127.0.0.1',port=3306, user='你自己的賬號(hào)', passwd='你自己的密碼', db='你的數(shù)據(jù)庫(kù)')
執(zhí)行語(yǔ)句:
# 獲取游標(biāo) cos = con.cursor(pm.cursors.DictCursor) sql = cos.execute("select * from 你自己的數(shù)據(jù)表") # 查看查詢結(jié)果 print(sql)
關(guān)閉連接:
con.close() cos.close()
10.6 模塊與包
10.6.1 模塊
模塊是一個(gè)py文件
我們自己創(chuàng)建一個(gè)py文件就是一個(gè)模塊
我們可以對(duì)他進(jìn)行導(dǎo)入的操作,然后使用
自定義模塊:textmodel.py
def print_f(a): print(a)
另一個(gè)py文件:模塊.py
導(dǎo)入的時(shí)候記得要讓兩個(gè)文件同路徑
我們導(dǎo)入自定義模塊,然后使用自定義函數(shù)
# 第一種方法 import textmodel textmodel.print_f("第一種方法:直接導(dǎo)入 測(cè)試成功") # 第二種方法 from textmodel import print_f print_f("第二種方法:精確導(dǎo)入某函數(shù) 測(cè)試成功") # 第三種方法 import textmodel as tm tm.print_f("第三種方法:導(dǎo)入起別名 測(cè)試成功")
導(dǎo)入別人的模塊和內(nèi)置模塊也可以這樣
項(xiàng)目文件夾:
10.6.2 包
包就是一個(gè)含有__init__.py的文件夾
我們?cè)陧?xiàng)目目錄下創(chuàng)建一個(gè)文件夾text,然后在里面放一個(gè)__init__.py的文件
這樣就是一個(gè)包了
在text文件夾新建一個(gè)textpackage.py
def print_f(a): print(a)
和text同目錄的模塊.py文件
from text import textpackeg textpackeg.print_f("包測(cè)試成功")
項(xiàng)目文件夾:
text文件夾:
【生長(zhǎng)吧!Python】有獎(jiǎng)?wù)魑幕馃徇M(jìn)行中:https://bbs.huaweicloud.com/blogs/278897
Python
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。