成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Python3的一些基礎(chǔ)語(yǔ)法介紹和理解

MangoGoing / 2886人閱讀

摘要:作者心葉時(shí)間此處長(zhǎng)期維護(hù)一些對(duì)幫助快速使用的一些基礎(chǔ)語(yǔ)法,方便日常算法練習(xí)使用??刂普Z(yǔ)法語(yǔ)句可以跳出和的循環(huán)體。迭代器有兩個(gè)基本的方法和,這點(diǎn)也很類似字符串,列表或元組對(duì)象都可用方法創(chuàng)建迭代器對(duì)象。并在下一次執(zhí)行方法時(shí)從當(dāng)前位置繼續(xù)運(yùn)行。

作者:心葉
時(shí)間:2018-04-23 22:18

此處長(zhǎng)期維護(hù)一些對(duì)幫助快速使用python3的一些基礎(chǔ)語(yǔ)法,方便日常算法練習(xí)使用。

控制語(yǔ)法

break 語(yǔ)句可以跳出 for 和 while 的循環(huán)體。如果你從 for 或 while 循環(huán)中終止,任何對(duì)應(yīng)的循環(huán) else 塊將不執(zhí)行。

continue語(yǔ)句被用來告訴Python跳過當(dāng)前循環(huán)塊中的剩余語(yǔ)句,然后繼續(xù)進(jìn)行下一輪循環(huán)。

if條件控制
if 表達(dá)式:
    語(yǔ)句
    if 表達(dá)式:
        語(yǔ)句
    elif 表達(dá)式:
        語(yǔ)句
else:
    語(yǔ)句
while循環(huán)

Python中沒有do..while循環(huán)

while 判斷條件:
    語(yǔ)句
else:
    語(yǔ)句
for語(yǔ)句
for  in :
    
else:
    
range()函數(shù)

這個(gè)函數(shù)不得不提,為什么滴?因?yàn)樵趯?shí)際用python練習(xí)算法題目時(shí),這個(gè)函數(shù)真的用的太頻繁了。

print(list(range(5,9))) #[5, 6, 7, 8]

for i in range(5):print(i,end=" ") #0 1 2 3 4

for i in range(1,3):print(i,end=" ") #1 2

for i in range(0, 10, 3):print(i,end=" ") #0 3 6 9

for i in range(-10, -100, -30):print(i,end=" ") #-10 -40 -70
    
迭代器與生成器 迭代器

迭代器是什么東西?哈哈,有沒有想起java中集合的方法iterator()返回迭代器?是的,就是類似這個(gè)的存在。

迭代器有兩個(gè)基本的方法:iter() 和 next(),這點(diǎn)也很類似java(字符串,列表或元組對(duì)象都可用iter()方法創(chuàng)建迭代器對(duì)象)。

下面先簡(jiǎn)單演示一下這二個(gè)方法的用法:

list=["中國(guó)","美國(guó)","俄羅斯","埃塞俄比亞"]

#1.使用iter()方法獲取迭代器對(duì)象
it = iter(list) 

#2.使用next()方法依次獲取數(shù)據(jù)
print (next(it)) #打印結(jié)果是"中國(guó)"
print (next(it)) #打印結(jié)果是"美國(guó)"

上面的例子應(yīng)該已經(jīng)明白這二個(gè)方法的用法了,使用iter()方法獲取迭代器對(duì)象,再用next(it)方法依次獲取集合的數(shù)據(jù)。

當(dāng)然,到末尾了已經(jīng)沒有可以取的數(shù)據(jù)的時(shí)候,再次調(diào)用會(huì)拋出異常,因此我們可以借助這個(gè)來實(shí)現(xiàn)迭代全部的數(shù)據(jù),如下:

list=["中國(guó)","美國(guó)","俄羅斯","埃塞俄比亞"]

it = iter(list)  

flag=True; 

while flag:

    try:
        print (next(it))
        
    except StopIteration:
        print ("迭代結(jié)束了",end="
")
        flag=False

除此之外,使用for可以實(shí)現(xiàn)類似的效果,如下:

list=["中國(guó)","美國(guó)","俄羅斯","埃塞俄比亞"]

it = iter(list)

for x in it: 
    print (x, end=" ") #"中國(guó)","美國(guó)","俄羅斯","埃塞俄比亞"

因此,迭代全部的數(shù)據(jù)肯定不是迭代器存在的全部意義,更多的時(shí)候,你可以把它看成一個(gè)管理一列數(shù)據(jù)的對(duì)象,需要的時(shí)候告訴他一下,他就會(huì)給你下一個(gè)數(shù)據(jù),不像for循環(huán)那樣一下子迭代結(jié)束,你可以在任何需要的時(shí)候獲取下一個(gè)數(shù)據(jù)。

記住這一個(gè)特點(diǎn),特別是在設(shè)計(jì)算法或者模式的時(shí)候,會(huì)很有用的(當(dāng)然,具體用好他從來都是經(jīng)驗(yàn)的事情,祝你好運(yùn))。

生成器

TS或者ES6+有所了解的人應(yīng)該都知道yield函數(shù),基本上和這里的差不多用法。

在調(diào)用生成器運(yùn)行的過程中,每次遇到 yield 時(shí)函數(shù)會(huì)暫停并保存當(dāng)前所有的運(yùn)行信息,返回yield的值。并在下一次執(zhí)行 next()方法時(shí)從當(dāng)前位置繼續(xù)運(yùn)行。

上面的說法可能有點(diǎn)不好理解,ok,下面用大白話說一下:

生成器就是一個(gè)可以自定義一個(gè)生成迭代器對(duì)象函數(shù)的概念,生成的迭代器對(duì)象每次被詢問返回下一個(gè)數(shù)據(jù)的時(shí)候,自定義的如果返回,使用的就是yield函數(shù),先看下下面的例子:

#定義一下可以生成迭代器對(duì)象的函數(shù),類似上面例子中的iter()方法
def generatorDemo(array):
    index=0
    while(index

因此,你可以從二個(gè)角度來理解生成器:

1.一個(gè)和迭代器配合使用的迭代器對(duì)象生成方法;

2.更本質(zhì)的理解:yield類似return,可以返回?cái)?shù)據(jù),不過不同的是,可以多次返回?cái)?shù)據(jù),調(diào)用一下返回一下,再次調(diào)用返回下一個(gè)yield定義返回?cái)?shù)據(jù)的地方,就如同上面的例子,直到y(tǒng)ield語(yǔ)句全部完畢再次調(diào)用會(huì)拋出錯(cuò)誤。

如果你問我什么時(shí)候使用他,這具體看業(yè)務(wù)需求,就好比if語(yǔ)句一樣,他就在那里,需要用的時(shí)候可以記起來他,就夠了。

函數(shù)

具體就不用多說明了,直接給出定義,然后說幾個(gè)重要的問題。

def 函數(shù)名(參數(shù)列表):
    函數(shù)體
參數(shù)傳遞

在 python 中,strings, tuples, 和 numbers 是不可更改的對(duì)象,而 list,dict 等則是可以修改的對(duì)象。

函數(shù)中傳遞參數(shù)的時(shí)候,不可更改的對(duì)象和可以修改的對(duì)象在操作影響上是有很大區(qū)別的,用一句話說明的話就是:不可更改的對(duì)象類似傳遞的是值,可以修改的對(duì)象傳遞的是"指針",也就是引用傳遞,應(yīng)該可以感受出來區(qū)別了吧。

python 中一切都是對(duì)象,嚴(yán)格意義我們不能說值傳遞還是引用傳遞,我們應(yīng)該說傳不可變對(duì)象和傳可變對(duì)象。

參數(shù)

參數(shù)有四點(diǎn),具體的很多和ES很像,不過在第一點(diǎn)上和ES區(qū)別很大,下面來簡(jiǎn)單說明一下:

1.必需參數(shù):就是你定義函數(shù)的時(shí)候,定義了幾個(gè)參數(shù),調(diào)用的時(shí)候就要傳遞幾個(gè),當(dāng)然是普通定義方法,不包括下面的不定長(zhǎng)參數(shù),這點(diǎn)ES就很隨意了;

2.關(guān)鍵字參數(shù):舉個(gè)例子,比如你定義了一個(gè)函數(shù)有二個(gè)參數(shù)age和name,函數(shù)名稱是getInfo,正常調(diào)用是依次傳遞參數(shù):getInfo(7,"yelloxing"),當(dāng)然你可以不這樣,你還可以這樣:

getInfo(name="yelloxing",age=7);

3.默認(rèn)參數(shù):這個(gè)就和ES6差不多意思,舉例,定義函數(shù)時(shí)(沒有寫全,值寫函數(shù)頭部):

getInfo(age,name="默認(rèn)名稱");

4.不定長(zhǎng)參數(shù):定義方法:getInfo(age,name,*vartuple),這樣多傳遞的數(shù)據(jù)就全部在vartuple中,調(diào)用前它是一個(gè)空元組。

別的更多細(xì)節(jié)說明就到此為止,如果后續(xù)有必要再添加或多帶帶整理,此時(shí)的已經(jīng)夠用了。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/41570.html

相關(guān)文章

  • 【Python零基礎(chǔ)到入門】Python基礎(chǔ)語(yǔ)法篇——基本數(shù)據(jù)類型【文末送書】

    摘要:布爾值布爾值和布爾代數(shù)的表示完全一致,一個(gè)布爾值只有兩種值的數(shù)據(jù)類型可以通過內(nèi)置的函數(shù)查詢,例如還可以用來判斷和的區(qū)別在于不會(huì)認(rèn)為子類是一種父類類型。會(huì)認(rèn)為子類是一種父類類型?;竟δ苁沁M(jìn)行成員關(guān)系測(cè)試和刪除重復(fù)元素。 ...

    Winer 評(píng)論0 收藏0
  • python入門,編程基礎(chǔ)概念介紹(變量,條件,函數(shù),循環(huán))

    摘要:該系列文章入門,編程基礎(chǔ)概念介紹變量,條件,函數(shù),循環(huán)中的數(shù)據(jù)類型,,,,在中創(chuàng)建對(duì)象學(xué)一門編程語(yǔ)言正在變得越來越容易,只要念過高中甚至是初中小學(xué),能熟練聊和懂得一點(diǎn)點(diǎn)軟件的人,入門一門編程語(yǔ)言都不在話下。 該系列文章: 《python入門,編程基礎(chǔ)概念介紹(變量,條件,函數(shù),循環(huán))》 《python中的數(shù)據(jù)類型(list,tuple,dict,set,None)》 《在python...

    Bryan 評(píng)論0 收藏0
  • Python入門-Python簡(jiǎn)介

    摘要:年月宣布支持時(shí)間延長(zhǎng)到年。更詳細(xì)的發(fā)布列表參閱官網(wǎng)的版本號(hào)分為三段,形如。其中表示大版本號(hào),一般當(dāng)整體重寫,或出現(xiàn)不向后兼容的改變時(shí),增加表示功能更新,出現(xiàn)新功能時(shí)增加表示小的改動(dòng)如修復(fù)了某個(gè),只要有修改就增加。年公司正式發(fā)布。 < 返回索引頁(yè) Python語(yǔ)言簡(jiǎn)介 Python介紹及發(fā)展 介紹 Python 官方網(wǎng)站:https://www.python.org/, 大家可以到此處下...

    Java_oldboy 評(píng)論0 收藏0
  • 干貨 | 學(xué)習(xí)Python正確姿勢(shì)

    摘要:勤學(xué)學(xué)習(xí)效率與效果取決于執(zhí)行力。這一步學(xué)習(xí)的正確姿勢(shì)是在實(shí)踐操作中發(fā)掘問題,然后帶著問題找答案。拆分任務(wù)將目標(biāo)分解成具體可執(zhí)行的學(xué)習(xí)任務(wù)。勤學(xué)強(qiáng)大的執(zhí)行力是學(xué)習(xí)的根本保障。分享復(fù)述檢驗(yàn)學(xué)習(xí)成果,提高學(xué)習(xí)效果的最好方法。 showImg(https://segmentfault.com/img/bVbcPGZ?w=256&h=256); 前段時(shí)間和大家一起分享了一篇關(guān)于學(xué)習(xí)方法內(nèi)容《大牛...

    Thanatos 評(píng)論0 收藏0
  • Python3 簡(jiǎn)明教程

    摘要:課程簡(jiǎn)介簡(jiǎn)明易懂的課程,不僅適用于那些有其它語(yǔ)言基礎(chǔ)的同學(xué),對(duì)沒有編程經(jīng)驗(yàn)的同學(xué)也非常友好。建議遵守以下約定使用個(gè)空格來縮進(jìn)永遠(yuǎn)不要混用空格和制表符在函數(shù)之間空一行在類之間空兩行字典,列表,元組以及參數(shù)列表中,在后添加一個(gè)空格。 showImg(https://segmentfault.com/img/bVCldE); 課程簡(jiǎn)介:簡(jiǎn)明易懂的 Python3 課程,不僅適用于那些有其它語(yǔ)...

    cyqian 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<