知識(shí)
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們?cè)谧非笃湟曈X(jué)表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營(yíng)銷的便利,運(yùn)營(yíng)的高效,讓網(wǎng)站成為營(yíng)銷工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏?jí)提供便捷的支持!
第三課.python編程基礎(chǔ)(二)
發(fā)表時(shí)間:2020-10-19
發(fā)布人:葵宇科技
瀏覽次數(shù):58
在最開始,我記錄一個(gè)內(nèi)容:TPU,TPU是谷歌生產(chǎn)的專用于tensor計(jì)算的處理器。下面進(jìn)入正式部分
條件判斷與三元表達(dá)式
python中只有if,if else,if elif,if elif else這幾種組合,判斷的條件不是None,0,False就可以執(zhí)行;如果借助elif就可以實(shí)現(xiàn)多分支判斷:
#條件判斷 if else
age=66
if age<18:
print('young boy')
else:
print('adults')
#多分支判斷 if elif
age=66
if age<18:
print('young boy')
elif age>18 and age<60:
pringt('adults')
elif age>60:
print('others')
關(guān)于三元表達(dá)式,a if condition else b
,它只是一個(gè)表達(dá)式,如果條件不是None或者0,False,就返回a,否則返回b
三元表達(dá)式通常用于條件判斷的場(chǎng)景:
a=1 if b>6 else 3
注意,不能按照if else的習(xí)慣,寫成a=1 if b>6 else a=3
,因?yàn)? if b>6 else 3本身就是一個(gè)表達(dá)式
循環(huán)與循環(huán)控制
循環(huán)指的是for循環(huán),while循環(huán),控制是break,continue關(guān)鍵字的使用,只需要記住以下幾點(diǎn):
1.for循環(huán):可設(shè)置迭代次數(shù)的循環(huán)
2.while循環(huán):條件循環(huán),不能設(shè)置迭代次數(shù)
3.break:終止整個(gè)循環(huán)
4.continue:跳過(guò)本次循環(huán)
迭代器和生成器
迭代器和生成器在以往困惑了我很久,因此我在這里特別記錄一下這個(gè)部分
在了解迭代器之前,先明白什么是可迭代對(duì)象,一般來(lái)說(shuō),當(dāng)創(chuàng)建了一個(gè)列表,集合,字典時(shí),就生成了一個(gè)容器,比如:
一個(gè)列表[1,2,3,4]
就是一個(gè)容器,這就是一個(gè)可迭代對(duì)象,所謂可迭代對(duì)象指可通過(guò)for循環(huán)遍歷的對(duì)象。注意,目前這個(gè)容器并不能自己遍歷自己(通過(guò)對(duì)象自身的方法來(lái)遍歷自己,一般這個(gè)方法指的就是__next__)。到這里,就該說(shuō)出迭代器和可迭代對(duì)象的區(qū)別了,迭代器是具有__next__方法的可迭代對(duì)象。
通過(guò)iter()方法進(jìn)行類型轉(zhuǎn)換后,可以將可迭代對(duì)象變成迭代器。在原文檔中,可迭代對(duì)象叫做iterable,迭代器叫做iterator,迭代器的__next__方法也有特點(diǎn):只能迭代一次,不能返回到以前的索引,下面是相關(guān)實(shí)例,助于理解:
#迭代器與可迭代對(duì)象的區(qū)別,迭代器多了一個(gè)方法__next__
print("This is iterator")
li=iter([1,2,3])
print(next(li))
print("for循環(huán)開始")
for i in li:
print(i)
print("This is iterable")
lis=[1,2,3]
for i in lis:
print(i)
for i in lis:
print(i)
對(duì)于生成器,生成器必然是一個(gè)迭代器,生成器這個(gè)對(duì)象有兩種實(shí)現(xiàn)方式:第一種是用生成器表達(dá)式實(shí)現(xiàn);第二種方式是由生成器函數(shù)實(shí)現(xiàn)
生成器表達(dá)式類似列表生成式,只是將[…]中括號(hào)換成(…)小括號(hào),例如:
>>> li=(x for x in range(30) if x%3==0)
>>> li
<generator object <genexpr> at 0x7f79e7581d60>
用函數(shù)實(shí)現(xiàn)的生成器就是函數(shù)中使用了yield關(guān)鍵字,這就是為什么看到y(tǒng)ield總會(huì)牽扯到生成器這個(gè)對(duì)象的原因:
#生成器函數(shù)(帶yield關(guān)鍵字的函數(shù))實(shí)現(xiàn)生成器
def func(n):
for i in range(n):
yield i**2
gen=func(6)
print(gen)
print(next(gen))
print("借助for循環(huán)")
for item in gen:
print(item)
正如gen=func(6)的聲明,gen就是一個(gè)生成器,結(jié)果如下:
異常與調(diào)試
調(diào)試BUG,BUG的意思是昆蟲,那為什么要叫找BUG,其實(shí)背后有個(gè)有趣的故事
在早期,人們使用繼電器編程,美國(guó)的一名海軍當(dāng)時(shí)正在為完成一項(xiàng)任務(wù)進(jìn)行編程,機(jī)器剛開始還好好的,但過(guò)了一會(huì)就出現(xiàn)了故障,每個(gè)實(shí)驗(yàn)人員都覺(jué)得很奇怪,這名海軍爬上機(jī)器,在線路之中發(fā)現(xiàn)了飛蛾,飛蛾由于光和熱的吸引,靠近繼電器后被燒死,導(dǎo)致一組繼電器短路,于是這名海軍為機(jī)器調(diào)試取了一個(gè)形象的名字:找昆蟲,也就是找BUG
發(fā)現(xiàn)異常有助于我們調(diào)試代碼,使程序更穩(wěn)定,在python中,常見異常如下:
NameError: 訪問(wèn)到?jīng)]有聲明的變量
ZeroDivisionError: 除數(shù)是0
SyntaxError: 語(yǔ)法錯(cuò)誤
IndexError: 索引超出范圍
KeyError :請(qǐng)求一個(gè)不存在的字典關(guān)鍵字
IOError: 輸入輸出錯(cuò)誤,例如讀文件,但文件不存在
AttributeError: 訪問(wèn)到未知的對(duì)象屬性
ValueError: 傳給函數(shù)的參數(shù)類型不正確,例如給數(shù)值型參數(shù)傳遞了字符串
通常,我們將有疑惑的代碼放入try下,except會(huì)捕獲對(duì)應(yīng)的異常,并執(zhí)行對(duì)應(yīng)指令:
try:
code
except ValueError:
print("值錯(cuò)誤")
except NameError:
print("名稱錯(cuò)誤")
else:
print("狀態(tài)良好")
除了系統(tǒng)發(fā)現(xiàn)異常,也可以通過(guò)關(guān)鍵字raise手動(dòng)拋出異常:
def addfunc(a,b):
if type(a)!=type(b):
raise ValueError('類型錯(cuò)誤')
return a+b
addfunc(5,'a')
相關(guān)案例查看更多
相關(guān)閱讀
- 開發(fā)框架
- 英文網(wǎng)站建設(shè)公司
- 云南小程序被騙
- 關(guān)鍵詞快速排名
- vue開發(fā)小程序
- 網(wǎng)站建設(shè)報(bào)價(jià)
- 云南網(wǎng)站建設(shè)高手
- 軟件開發(fā)
- 云南網(wǎng)站建設(shè)
- uniapp開發(fā)小程序
- 網(wǎng)絡(luò)營(yíng)銷
- 昆明軟件定制
- 云南網(wǎng)站建設(shè)選
- 小程序被攻擊
- 定制小程序開發(fā)
- 云南小程序開發(fā)費(fèi)用
- 云南網(wǎng)站建設(shè)價(jià)格
- 安家微信小程序
- 昆明小程序設(shè)計(jì)
- 汽車報(bào)廢回收
- 微信分銷
- 微信分銷系統(tǒng)
- 快排推廣
- 云南網(wǎng)站建設(shè)首頁(yè)
- 報(bào)廢車拆解管理系統(tǒng)
- 昆明小程序開發(fā)聯(lián)系方式
- 網(wǎng)站排名優(yōu)化
- 百度小程序開發(fā)
- 汽車報(bào)廢系統(tǒng)
- 云南網(wǎng)站建設(shè)外包