最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

【Python教程】《零基礎(chǔ)入門學(xué)習(xí)Python》最新版

2022-05-25 08:41 作者:我我我就是我唯一的我  | 我要投稿

修改編輯器的字體,使中英文標(biāo)點(diǎn)符號(hào)差異大些:

?
用Python設(shè)計(jì)第一個(gè)游戲 P3 - 03:39
?

  • 點(diǎn)擊IDLE菜單欄上"Options-Configure IDLE"
  • 選擇"Fonts/Tabs"選擇等寬字體(推薦Consolas),點(diǎn)擊"Apply"后點(diǎn)擊“OK”


Python3代碼樣式指導(dǎo)手冊(cè)(PEP8)

https://fishc.com.cn/thread-139746-1-1.html


變量名可以用漢字表示 eg:數(shù)量=1


python內(nèi)置函數(shù)共68個(gè)


Tab 鍵除了用于縮進(jìn),Tab 鍵的另一個(gè)妙用就是自動(dòng)填充,比如咱輸入 pr 兩個(gè)字符,再摁一下鍵盤上的 Tab 鍵,會(huì)彈出一個(gè)提示款,IDLE 在猜測(cè)你想干哈呢


Python3 雖然支持中文作為變量名,但有些大牛卻不贊同這么做,你覺得他們的依據(jù)是什么?

答:隨著時(shí)代的發(fā)展,越來越多的編程語言不僅支持純英文代碼,還支持全球多數(shù)國(guó)家的語言開發(fā),有些變態(tài)的甚至還能使用 Emoji 符號(hào)……但是,都沒能流行起來!為什么呢?以下是小甲魚認(rèn)同的幾點(diǎn)原因,歡迎補(bǔ)充。

  • 不利于與外國(guó)友人協(xié)同開發(fā)程序;
  • 敲一個(gè)中文單詞的步驟比英文單詞要多;
  • 習(xí)慣問題:以前的編程語言多數(shù)只支持純英文,大家只能硬著頭皮用英文;
  • 就算是變量名支持中文了,但符號(hào)卻還是只能使用英文的;
  • 難道你們不覺得切輸入法很煩嗎?


給變量命名,要避免與 Python 內(nèi)部使用的名字沖突,不然這個(gè)內(nèi)置函數(shù)就廢掉了


如果要為一個(gè)函數(shù)寫說明文檔,那么你覺得應(yīng)該使用哪種字符串比較合適?三引號(hào)字符串,也就是長(zhǎng)字符串合適。


如果在 IDLE 的交互模式中使用 help(obj) 函數(shù),可以查看到 obj 對(duì)應(yīng)的說明文檔


print()

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)




1 + 1 >= 2返回 True。?2 >= 2 成立


random -- 生成偽隨機(jī)數(shù)

https://fishc.com.cn/thread-145254-1-1.html

可以實(shí)現(xiàn)對(duì)偽隨機(jī)數(shù)的攻擊,random生成的隨機(jī)數(shù)可以被重現(xiàn):

?
改進(jìn)我們的小游戲(下) P8 - 06:11
?

random.getstate()獲取隨機(jī)數(shù)種子加工之后,隨機(jī)數(shù)生成器的內(nèi)部狀態(tài)

?
改進(jìn)我們的小游戲(下) P8 - 06:37
?

x=random.getstate()

random.randint(1,10)

random.setstate(x)

random.randint(1,10)


Python 除法的運(yùn)算結(jié)果是以浮點(diǎn)數(shù)的形式存儲(chǔ)的(盡管結(jié)果可以整除)


浮點(diǎn)數(shù)在計(jì)算機(jī)中的存儲(chǔ)是存在 “誤差” 的,當(dāng)浮點(diǎn)數(shù)相加的結(jié)果等于整數(shù)時(shí),偏差則不會(huì)出現(xiàn)。如果需要做到 100% 精確計(jì)算浮點(diǎn)數(shù),請(qǐng)使用 decimal 模塊(傳送門)

from decimal import Decimal

a = Decimal('0.1')

b = Decimal('0.3')

print(a - b)

#-0.2


random.randint(a, b) 返回一個(gè)隨機(jī)整數(shù) N,范圍是:a <= N <= b


擁有相同的種子的語句,打印的結(jié)果是相同

random.sample(range(1,8),6)從1-7之間隨機(jī)抽取6個(gè)不重復(fù)數(shù)


運(yùn)算符 // 取比目標(biāo)結(jié)果小的最大整數(shù) -3//2 #-2


如果給 int() 函數(shù)傳入一個(gè)浮點(diǎn)數(shù)參數(shù),那么 int() 是簡(jiǎn)單暴力地將小數(shù)部分裁掉(比如 int(9.99) 的結(jié)果等于 9)……可是我們更習(xí)慣的是使用“四舍五入”的方式來取整。如果不借助其它函數(shù),你能夠單純使用 int() 函數(shù)來實(shí)現(xiàn)嗎

答:只需要將 int() 函數(shù)的參數(shù) +0.5 即可實(shí)現(xiàn)四舍五入


?
布爾類型 P11 - 03:18
?


?
布爾類型 P11 - 07:12
?


?
短路邏輯和運(yùn)算符優(yōu)先級(jí) P12 - 01:27
?

and 和 or 遵從短路邏輯

?
短路邏輯和運(yùn)算符優(yōu)先級(jí) P12 - 03:14
?

print1 if condition1 else print2


extend()參數(shù)必須是可迭代對(duì)象,新加內(nèi)容追加到列表最后一個(gè)元素的后面



list變量名.clear() 清空列表


列表X is 列表Y False。因?yàn)榱斜鞽和Y的值位置不同


?
列表(V) P24 - 01:41
?

淺拷貝:copy() 或者 lista=listb[:]

深拷貝:decopy()


兩者效果一樣,但后者效率更快,但后者推導(dǎo)式語句使用較為復(fù)雜時(shí),需要權(quán)衡下使用,后期是否好維護(hù)



字符串

swapcase()將原字符串大寫變小寫,小寫變大寫。

fillchar默認(rèn)為0


zfill(width) ,當(dāng)width大于原字符串width, 用0填充左側(cè)。

find()從左往右找,rfind()從右往左找

?
字符串(II) P29 - 01:54
?

在find()里的值,沒有在字符串里,會(huì)返回-1。


?
字符串(II) P29 - 02:18
?

在index()里的值,沒有在字符串里,會(huì)報(bào)錯(cuò)。


?
字符串(II) P29 - 03:21
?

expandtabs(4)即指定一個(gè)tab等于4個(gè)空格


?
字符串(II) P29 - 07:11
?


#P30

[,start[,end]]代表start和end是可選參數(shù)

removeprefix(prefix)和removesuffix(suffix)允許刪除指定的前綴或后綴

?
字符串(IV) P31 - 03:52
?

將字符串以參數(shù)指定的分隔符為依據(jù)將字符串切割并返回1個(gè)3元組。

partition() 從左往右

rpartition()從右往左



split()從左往右

rsplit()從右往左

splitlines(keepends=False)按行分割并將結(jié)果以列表的方式返回。keepends=True表示結(jié)果包含換行符


.join()拼接效率 比 +拼接效率



format()

?
字符串(V) P32 - 07:31
?



?
字符串(VI) P33 - 00:24
?


例如:


適用整數(shù)的值有(值前面加#會(huì)在輸出時(shí)顯示值類型):

例如


適用浮點(diǎn)數(shù)的值有(值前面加#會(huì)在輸出時(shí)顯示值類型):

例如:


is 、is not 判斷是否同一對(duì)象




sort和sorted處理列表排序,使用sort(),原列表會(huì)被改變。參數(shù)reverse表示反排序,key=len表示按照len大小排序



?
序列(下) P36 - 00:28
?

all()判斷可迭代對(duì)象所有對(duì)象是否為真

all()判斷可迭代對(duì)象任一對(duì)象是否為真

?
序列(下) P36 - 01:22
?

?
序列(下) P36 - 03:08
?

?
序列(下) P36 - 06:32
?



?
序列(下) P36 - 10:38
?



1個(gè)迭代器肯定是1個(gè)可迭代對(duì)象??傻鷮?duì)象可以重復(fù)使用,而迭代器則是一次性的。


iter()


next()逐個(gè)將迭代器的元素提取出來。當(dāng)?shù)鳑]有任何元素就會(huì)報(bào)錯(cuò)


?
字典(中) P38 - 09:02
?


?
字典(中) P38 - 10:55
?

pop不存在元素會(huì)報(bào)錯(cuò),可給一個(gè)default值替代報(bào)錯(cuò)信息

popitem()在python 3.7版本后刪除字典最后加入的鍵值對(duì)。

del語句可以用于字典

clear()清空字典的鍵值對(duì),字典是空的。


?
字典(下) P39 - 01:07
?

?
字典(下) P39 - 02:30
?


setdefault()查找一個(gè)鍵是否存在于字典中,如果不存在,則指定一個(gè)新的值


復(fù)制字典:copy()

逆向排序:reverse(3.8版本及以后才可以)



?
集合(上) P40 - 05:15
?

isdisjoint()

issubset()

issuperset()

union()

intersection()

difference()

symmetric_diffference()


.frozenset()創(chuàng)建不可變的集合

.set()創(chuàng)建可變的集合


?
集合(下) P41 - 06:59
?

不可變對(duì)象是可哈希的,可變對(duì)象是不可哈希的!


集合的嵌套使用.frozenset()


其中,/代表/左側(cè)必須是位置參數(shù),不能使用關(guān)鍵字參數(shù)


*代表*左側(cè)可以是位置參數(shù)或關(guān)鍵字參數(shù),*右側(cè)必須是關(guān)鍵字參數(shù)才不會(huì)報(bào)錯(cuò)


return語句被執(zhí)行后,直接返回結(jié)果,不會(huì)再執(zhí)行之后的語句


使用**可以把參數(shù)打包成字典

?
函數(shù)(III) P44 - 10:10
?


?
函數(shù)(IV) P45 - 00:32
?

全局變量可以在函數(shù)內(nèi)部中訪問,但無法在函數(shù)中修改值。



不建議global申明全局變量并修改,易出現(xiàn)難以排查的bug



?
函數(shù)(IV) P45 - 06:30
?

?
函數(shù)(IV) P45 - 08:44
?

在內(nèi)部函數(shù)修改外部函數(shù)的變量,使用nonlocal語句


?
函數(shù)(IV) P45 - 09:29
?

作用域的影響范圍存在相互覆蓋的情況,當(dāng)沖突出現(xiàn)的時(shí)候,python會(huì)選擇誰?

Local(局部作用域) 、Enclosed(嵌套函數(shù)外層函數(shù)作用域)、Global(全局作用域)、Build-In(內(nèi)置作用域)

Local與Global發(fā)生沖突時(shí),除非使用global語句申明,否則python會(huì)使用Local的變量;

當(dāng)函數(shù)嵌套發(fā)生的時(shí)候,除非使用nonlocal語句,

否則局部作用域又會(huì)覆蓋外層函數(shù)的作用域的變量

?
閉包 -- 函數(shù)(V) P46 - 00:32
?


多看幾遍...

?
裝飾器 -- 函數(shù)(VI) P47 - 07:43
?


以下寫法結(jié)果相同



表示調(diào)用myfunc()時(shí)把myfunc()作為參數(shù)傳遞給裝飾器time_master()再調(diào)用裝飾器



?
裝飾器 -- 函數(shù)(VI) P47 - 12:44
?

多個(gè)裝飾器 從最靠近函數(shù)的@開始

?
裝飾器 -- 函數(shù)(VI) P47 - 13:44
?

以下寫法結(jié)果相同



?
lambda表達(dá)式 -- 函數(shù)(VII) P48 - 02:15
?

lambda能出現(xiàn)在python不允許def語句出現(xiàn)的地方


?
生成器 -- 函數(shù)(VIII) P49 - 01:20
?

在函數(shù)中,yield表達(dá)式代替return語句就是生成器。下例是counter()生成器


生成器的作用是每次提供1個(gè)數(shù)據(jù)。不能使用下標(biāo)索引的方式獲取值,會(huì)報(bào)錯(cuò)。

generator object 生成對(duì)象。


?
遞歸 -- 函數(shù)(IX) P50 - 00:49
?

遞歸(函數(shù)調(diào)用函數(shù)本身),如果沒有結(jié)束條件,就會(huì)不斷運(yùn)行,直至ctrl+c強(qiáng)制終止


?
漢諾塔 -- 函數(shù)(X) P51 - 09:06
?


def hanoi(n,x,y,z):


? ? #print("!!--------------------",str(n),x,y,z)


? ? if n==1:

? ? ? ? print(x,"-->",z) ?

? ? ? ?

? ? else:

? ? ? ? hanoi(n-1,x,z,y)


? ? ? ? #print("++---------------------",str(n-1),x,z,y)


? ? ? ? print(x,"-->",z)

? ? ? ? hanoi(n-1,y,x,z)


? ? ? # ?print("----------------------",str(n-1),y,x,z) # 1 b a c


n=int(input("層數(shù):"))

hanoi(n,"a","b","c")



使用help(函數(shù)名)查看函數(shù)文檔



?
函數(shù)文檔、類型注釋、內(nèi)省 -- 函數(shù)... P52 - 04:00
?

:str 或者:int 、 ->str是給人看的,即類型注釋,是作者期望輸入的類型,如果不按類型注釋輸入,python也不會(huì)阻止/報(bào)錯(cuò)。


?
函數(shù)文檔、類型注釋、內(nèi)省 -- 函數(shù)... P52 - 08:40
?

.__name__ 獲取函數(shù)名字

.__annotations__查看類型注釋

.__doc__查看函數(shù)文檔


?
高階函數(shù) -- 函數(shù)(XII) P53 - 00:36
?

當(dāng)一個(gè)函數(shù)接收另一個(gè)函數(shù)作為參數(shù)時(shí),該函數(shù)為高階函數(shù)

functool庫


?
高階函數(shù) -- 函數(shù)(XII) P53 - 06:17
?

將1個(gè)函數(shù)的多個(gè)參數(shù)拆分多次進(jìn)行傳遞

?
高階函數(shù) -- 函數(shù)(XII) P53 - 07:47
?

沒調(diào)用@wraps之前,是有副作用的(紅框)


調(diào)用后


ctr+f 搜索快捷鍵


?
永久存儲(chǔ)(中) P55 - 02:09
?

form pathlib import Path()

Path.cwd() #獲取當(dāng)前目錄的路徑·

.is_dir()#判斷一個(gè)路徑是否為一個(gè)文件夾

.is_file()#判斷一個(gè)路徑是否為一個(gè)文件

.exist()#判斷一個(gè)路徑是否存在

.name#獲取路徑的最后一個(gè)部分

.stem獲取文件名

.suffix獲取文件后綴

.parent獲取父級(jí)目錄

.parents獲取邏輯祖先路徑構(gòu)成的序列


.parts將路徑的各個(gè)組件拆分成元組


.stat查詢文件/文件夾的信息

?
永久存儲(chǔ)(中) P55 - 08:40
?

絕對(duì)路徑:文件真正存在的路徑

相對(duì)路徑:以當(dāng)前目錄為基準(zhǔn)進(jìn)行一級(jí)一級(jí)目錄推導(dǎo)的路徑。使用 . 表示當(dāng)前路徑,..表示上一路徑

resolve()將相對(duì)路徑變?yōu)榻^對(duì)路徑


iterdir()獲取當(dāng)前路徑下所有子文件和子文件夾

generator object 生成器

打印文件列表


mkdir()創(chuàng)建文件夾。如果要?jiǎng)?chuàng)建的文件夾已存在,會(huì)報(bào)錯(cuò)。除非exist_ok=True


創(chuàng)建多個(gè)文件需要設(shè)置紅框內(nèi)容才不會(huì)報(bào)錯(cuò)

open()打開文件

rename()修改文件名字

replace()替換指定的文件或文件夾

rmdir()刪除文件夾(文件夾為空才不報(bào)錯(cuò))

unlink() 刪除文件

glob()查找


?
永久存儲(chǔ)(下) P56 - 00:19
?

with語句能確保文件關(guān)閉。


?
永久存儲(chǔ)(下) P56 - 05:44
?

生成以二進(jìn)制形式保存內(nèi)容的pkl文件



讀取pkl 內(nèi)容




?
異常(下) P58 - 00:22
?

try-except-else:沒運(yùn)行except就會(huì)接著運(yùn)行else

?
異常(下) P58 - 01:33
?

try-except-finally 無論異常是否發(fā)生都會(huì)運(yùn)行finally

?
異常(下) P58 - 05:49
?

實(shí)現(xiàn)代碼自爆。

能偷天換日



raise 不能生成異常。

異常列:

?
異常(下) P58 - 08:29
?

通常用于代碼調(diào)試

條件不成立時(shí)引發(fā)AsserttionError

?
異常(下) P58 - 09:36
?

利用異常實(shí)現(xiàn)goto

?
類和對(duì)象(I) P59 - 02:59
?

類里面的變量是屬性,函數(shù)叫方法。

可通過實(shí)例對(duì)象訪問類的屬性和方法

?
類和對(duì)象(I) P59 - 07:17
?

在創(chuàng)建對(duì)象之前,通過類將相關(guān)屬性和方法給打包到一起,然后通過類生成相應(yīng)的對(duì)象。

?
類和對(duì)象(II) P60 - 01:30
?


class B:子類 class A:父類

當(dāng)子類存在與父類相同的屬性和方法,訪問子類時(shí)將得到子類的屬性和方法



判斷1個(gè)對(duì)象是否屬于1個(gè)類 isinstance()

由于B是子類,所以isinstance(b,A)也True


檢測(cè)1個(gè)類是否為另一個(gè)類的子類 issubclass()

?
類和對(duì)象(II) P60 - 06:00
?

1個(gè)子類可以同時(shí)繼承多個(gè)父類。


?
類和對(duì)象(II) P60 - 07:47
?

__dict__可以訪問出實(shí)例對(duì)象有哪些屬性


最小的類

?
類和對(duì)象(II) P60 - 01:03
?

















【Python教程】《零基礎(chǔ)入門學(xué)習(xí)Python》最新版的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
馆陶县| 新干县| 琼海市| 南和县| 和林格尔县| 石泉县| 府谷县| 阿瓦提县| 石阡县| 满城县| 大同县| 丰宁| 洛宁县| 塔城市| 阜康市| 台前县| 洪江市| 仲巴县| 河津市| 西畴县| 静海县| 武鸣县| 潍坊市| 丹棱县| 泰安市| 岗巴县| 开封县| 夏邑县| 上犹县| 大田县| 潞城市| 南和县| 汉阴县| 嘉峪关市| 临西县| 满城县| 昌宁县| 疏勒县| 通海县| 大邑县| 文水县|