不懂代碼用cms做網(wǎng)站/h5制作
文章目錄
- 變量和簡單的數(shù)據(jù)類型
- 下劃線開頭的對象
- 刪除內(nèi)存中的對象
- 列表與元組
- debug
- 三酷貓釣魚記錄
- 實際POS機(jī)小條打印
- 使用循環(huán)找烏龜
- 可迭代對象
- 📗理解一
- 📘理解二
- 2??什么是迭代器
- ??注意
- 3??迭代器對象
- 4??有關(guān)迭代的函數(shù)
- for循環(huán)的3用法
🌸I could be bounded in a nutshell and count myself a king of infinite space.
特別鳴謝:木芯工作室 、Ivan from Russia
變量和簡單的數(shù)據(jù)類型
下劃線開頭的對象
單下劃線_
變量
在Python中,變量可以包含數(shù)字、字母、下劃線等,所以單獨(dú)一個下劃線_也是一個變量
,表示一個臨時對象
,一般后續(xù)不會用到,比如:
>>> i = 0
>>> for _ in range(10):
... i += 1
...
>>> i
程序中運(yùn)行的最近一個結(jié)果
單下劃線_也可以表示程序中運(yùn)行的最近一個結(jié)果,如:
>>> 'https://machinelearning.blog.csdn.net/'
'https://machinelearning.blog.csdn.net/'
>>> _
'https://machinelearning.blog.csdn.net/'
>>> 100
100
>>> _
10
國際化和本地化字符串之間翻譯查找的函數(shù)
單下劃線_作為函數(shù)名
時,一般是代表了國際化和本地化字符串之間翻譯查找的函數(shù)。
單下劃線開頭變量_var
或函數(shù)_fun()
單下劃線開頭_var的變量或函數(shù)_fun表示該變量或函數(shù)為內(nèi)部使用的變量
,不建議在外部使用,但單下劃線開頭僅僅是一個提示,沒有權(quán)限控制,實際上可以在外部訪問。同時,如果用from <module> import *
和from <package> import *
時,這些屬性、方法、類將不被導(dǎo)入
。
單下劃線結(jié)尾var_
為了防止跟系統(tǒng)關(guān)鍵字重名
了,比如函數(shù)里需要有個參數(shù)class,但是Python中class為關(guān)鍵字,所以需要將 class設(shè)置為class_
。
雙下劃線開頭變量__var
或函數(shù)__fun()
代表著類中的私有變量名或函數(shù)
,主要用于避免子類覆蓋父類的方法
,如果需要訪問,需使用_classname__fun()
。
前后雙下劃線變量__var__
或函數(shù)__fun__()
系統(tǒng)定義
的變量名稱或函數(shù),如Python的魔法函數(shù)
: __ init__(),__ str__(),__ new__(),__ unicode__(), __ call__(),__ len__(),__repr__(),__ setattr__(),__ getattr__(),__ getattribute__(),__ delattr__(),__ setitem__(),__ getitem__(),__ delitem__(),__ iter__(),__ del__(),__dir__(),__dict__(),__exit__(),__enter(),__all__()。
我們定義變量名稱或函數(shù)是應(yīng)該盡量避免前后加雙下劃線。
版權(quán)聲明:本文為CSDN博主「von Neumann」的原創(chuàng)文章,遵循CC 4.0
BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/hy592070616/article/details/125114737
刪除內(nèi)存中的對象
a='0'
del(a)
print(a) //報錯
列表與元組
i = 0
while i<5:print(12)i+=1
debug
三酷貓釣魚記錄
a,b,c=6,5,8
print(''*3+'表2.1'+' 三酷貓的釣魚記錄')
print("| |"+"日期"+" 魚名"+" 數(shù)量")
print("|1 |"+"2017.11"+" 鯽魚"+" %d"%(a))
print("|2 |"+"2017.11"+" 鯽魚"+" %d"%(b))
print("|3 |"+"2017.11"+" 鯽魚"+" %d"%(c))
print( "總共 %d+%d+%d=19 "%(a,b,c))
實際POS機(jī)小條打印
血的教訓(xùn):%要緊隨其后
num1,num2,num3=6,5,8
price1,price2,price3=8.1,8.2,8
print(''*3+'表2.1'+' 三酷貓的釣魚記錄')
print("| |"+"日期"+" 魚名"+" 數(shù)量 單價")
print("|1 |"+"2017.11"+" 鯽魚"+" "+str(num1)+" "+str(price1))
print("|2 |"+"2017.11"+" 鯉魚"+" "+str(num2)+" "+str(price2))
print("|3 |"+"2017.11"+" 草魚"+" "+str(num3)+" "+str(price3))
print( "總共數(shù)量%d+%d+%d=19 "%(num1,num2,num3)+"總共"+str(123))
使用循環(huán)找烏龜
三酷貓釣魚記錄查找
fish_record=‘鯽魚5條、鯉魚8條、鰱魚7條、草魚2條、黑魚6條、烏龜1只’
fish_record='鯽魚5條、鯉魚8條、鰱魚7條、草魚2條、黑魚6條、烏龜1只'
i=0
total=len(fish_record)
print(total)
while i<total:print(str(i) + "--------" + str(total))if fish_record[i:i+2]=="烏龜":print("烏龜有"+fish_record[i+2:i+3]+"只")i+=5
可迭代對象
數(shù)字列表,字符串,列表,元組,字典…
📗理解一
Iterable
對象,就是可迭代對象,即可以用for...in...
進(jìn)行遍歷的對象,就叫可迭代對象。
比如列表,元組,字符串,字典等都屬于可迭代對象。
📘理解二
一個對象如果實現(xiàn)了__iter__
方法,那么我們稱這個對象是可迭代對象。
2??什么是迭代器
📗理解
一個實現(xiàn)了__iter__
方法和__next__
方法,并且可以通過__next__
方法不斷返回下一個值的對象稱為Itertor
,即迭代器。
也就是說,迭代器均可以使用 for...in... 和next
逐一遍歷。
迭代器的兩個最基本的方法:iter()
和 next()
.
??注意
需要注意的是,列表,元組,字典,集合,字符串
均實現(xiàn)了__iter__
方法,但并未實現(xiàn)__next__
方法,所以這些對象并不能稱為迭代器。
3??迭代器對象
?iter()
列表,元組,字符串等對象都可以使用iter()方法來創(chuàng)建迭代器對象。
?next()
創(chuàng)建迭代器對象后就可以使用next()
方法來訪問元素
訪問迭代器對象都是從第一個元素開始,直到訪問結(jié)束
迭代器只能往前不會后退
🔋實例
>>> list_1 = [1,2,3]
>>> it_list = iter(list_1)
>>> print(next(it_list))
>>> 1
>>> print(next(it_list))
>>> 2
>>> print(next(it_list))
>>> 3
>>> print(next(it_list))
>>> Traceback (most recent call last):
...
StopIteration
fish_record='鯽魚5條、鯉魚8條、鰱魚7條、草魚2條、黑魚6條、烏龜1只'
fish_record = iter(fish_record)
print(next(fish_record))
顯然,如果訪問到迭代器對象的最后一個元素時繼續(xù)訪問,就會觸發(fā)StopIteration異常
4??有關(guān)迭代的函數(shù)
🌱---- enumerate()
語法:
enumerate(iterable, start=0)
用法:
返回一個索引和enumerate
對象
參數(shù):
iterable
----可迭代對象或迭代器
start
----索引值,默認(rèn)為0
實例:
例1
>>>teams=['勇士', '熱火', '騎士']
>>>enumerate(teams)enumerate object at 0x000002E9569016C0>
>>>for t in enumerate(teams):print(t, end = ' ')
...(0, '勇士') (1, '熱火') (2, '騎士')
例2
>>>teams=['勇士', '熱火', '騎士']
>>>for i, t in enumerate(teams):print(i, t, end=" ")
... 0 勇士 1 熱火 2 騎士
例子3
>>>teams=['勇士', '熱火', '騎士']
>>>t1 = enumerate(teams)
>>>t1.__next__()(0, '勇士')
>>>t1.__next__()(1, '熱火')
>>>t1.__next__()(2, '騎士')
>>>t1.__next__()Traceback (most recent call last):...t1.__next__()StopIteration
例4
>>>teams=['勇士', '熱火', '騎士']
>>>t1 = enumerate(teams,2)
>>>t1.__next__()(2, '勇士')
>>>t1.__next__()(3, '熱火')
>>>t1.__next__()(4, '騎士')
>>>t1.__next__()Traceback (most recent call last):...t1.__next__()StopIteration
🌱---- map()
用法:
該函數(shù)用于將一個函數(shù)依次映射到可迭代對象的每個元素上,再返回一個map對象
實際上,map對象既是可迭代對象,也是一個迭代器對象
語法:
map(function, iterable, ...)
1
參數(shù):
function
---- 函數(shù)
iterable
---- 可迭代對象,可以有多個iterable
返回:
該函數(shù)返回一個將 function 應(yīng)用于 iterable 中每一項并輸出其結(jié)果的迭代器。
當(dāng)有多個可迭代對象時,最短的可迭代對象耗盡則整個迭代就將結(jié)束
實例:
由于該函數(shù)返回的是迭代器,所有我們可以用list()
函數(shù)將結(jié)果轉(zhuǎn)換
為列表
。
🌱---- zip()
用法:
將多個迭代器對象
(或可迭代對象)中的元素壓縮到一起,并返回一個zip對象
實際上,zip對象既是可迭代對象,也是一個迭代器對象
語法:
zip(iterable, ...)
1
參數(shù):
iterable
----可迭代對象,可以有多個。
返回:
該函數(shù)在多個iterable
上并行迭代,從每個可迭代對象上返回一個數(shù)據(jù)項組成元組。
也就是說, zip()
返回元組的迭代器
,其中第 i 個元組包含的是每個參數(shù)迭代器的第 i 個元素。
如圖:
🌱---- filter()
用法:
傳入帶有一個參數(shù)的函數(shù)function,并返回一個filter對象
filter對象中的元素是由參數(shù)中的iterable對象使得函數(shù)function返回值為True的那些元素組成
通俗講就是滿足function函數(shù)條件的那些元素組成了filter對象
實際上,filter對象既是可迭代對象,也是一個迭代器對象
語法:
filter(function, iterable)
1
參數(shù):
function
----判斷函數(shù),用于過濾掉對象里不符合條件的元素
iterable
----可迭代對象,如列表,元組等。
返回:
返回一個新的迭代器,其中的元素都符合判斷函數(shù)的條件
實例:
我們可以利用list()函數(shù)
來轉(zhuǎn)換filter()函
數(shù)的返回值
版權(quán)聲明:本文為CSDN博主「翼同學(xué)」的原創(chuàng)文章,遵循CC 4.0
BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/m0_62999278/article/details/123884858
for循環(huán)的3用法
for var in range(9):print("wowudi")
fish_record='鯽魚5條、鯉魚8條、鰱魚7條、草魚2條、黑魚6條、烏龜1只'i=0
for i in range(len(fish_record)):if fish_record[i+2:i+3] =="5":print("鯽魚"+"5")i+=5