欧美三级国产三级日韩三级_亚洲熟妇丰满大屁股熟妇_欧美亚洲成人一区二区三区_国产精品久久久久久模特

第三課.python編程基礎(chǔ)(二) - 新聞資訊 - 云南小程序開發(fā)|云南軟件開發(fā)|云南網(wǎng)站建設(shè)-昆明葵宇信息科技有限公司

159-8711-8523

云南網(wǎng)建設(shè)/小程序開發(fā)/軟件開發(fā)

知識(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í)提供便捷的支持!

您當(dāng)前位置>首頁(yè) » 新聞資訊 » 技術(shù)分享 >

第三課.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)

fig1
對(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é)果如下:
fig2

異常與調(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)案例查看更多