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

資訊專欄INFORMATION COLUMN

python基礎(chǔ)教程:流程控制之for循環(huán)

CoderBear / 2603人閱讀

摘要:在中,并不是一個內(nèi)置函數(shù),而是一個類型,但是在中它是一個內(nèi)置函數(shù)上面是中從看到的的說明,它的是,而不像內(nèi)置函數(shù)的是。雖然的類型從中的內(nèi)置函數(shù)變成了中的,但并不影響我們對它的使用。

循環(huán)是計算機程序中經(jīng)常用到的流程。試想一下,如果我們有一萬個數(shù)據(jù)要處理,每個數(shù)據(jù)處理的流程都一模一樣,如果我們用順序流程就要把處理流程重復(fù)寫一萬遍,是不是很累?而用for循環(huán)就簡單多了。

for循環(huán)

for循環(huán)其實前面講遍歷列表、字典的時候我們就已經(jīng)遇到了,它的語法很簡單,就是for item in items。

下面我們看一下for循環(huán):

numbers = [1,2,3,4,5,6]
for n in numbers:
    x = n * n
    print(x)

for循環(huán)用來遍歷一個序列是最常用的,有時候并沒有給我們一個現(xiàn)成的序列要遍歷,只是我們的程序需要循環(huán)特定的次數(shù),這時候我們就用到了range()函數(shù)。在Python 3.6中,range并不是一個內(nèi)置函數(shù),而是一個類型,但是在Python 2.7中它是一個內(nèi)置函數(shù):

In [134]: range?
Init signature: range(self, /, *args, **kwargs)
Docstring:     
range(stop) -> range object
range(start, stop[, step]) -> range object

Return an object that produces a sequence of integers from start (inclusive)
to stop (exclusive) by step.  range(i, j) produces i, i+1, i+2, ..., j-1.
start defaults to 0, and stop is omitted!  range(4) produces 0, 1, 2, 3.
These are exactly the valid indices for a list of 4 elements.
When step is given, it specifies the increment (or decrement).
Type:           type
Subclasses:     

In [135]: type(range)
Out[135]: type

In [136]: len?
Signature: len(obj, /)
Docstring: Return the number of items in a container.
Type:      builtin_function_or_method

In [137]: range(4)
Out[137]: range(0, 4)

上面是Python 3.6中從IPython看到的range的說明,它的Type是type,而不像內(nèi)置函數(shù)len的Type是builtin_function_or_method。

雖然range的類型從Python 2中的內(nèi)置函數(shù)變成了3.6中的type,但并不影響我們對它的使用。假如我們想打印 hi 特定次數(shù),
比如3次,下面就是range的經(jīng)典用法:

for i in range(3):
    print("hi")

這里的i并沒有在循環(huán)中被使用,為了不讓代碼規(guī)范檢查程序(如pylint)報錯“有未使用的變量”,我們可以用下劃線_替代

range()參數(shù)個數(shù)的不同也代表了生成不同的序列:

range(5) 生成從0-4共5個整數(shù)序列

range(1,5) 生成從1開始到5為止但不包含5的整數(shù)序列,即1-4

range(1,5,2) 從1開始到5為止,每次步長為2的整數(shù)序列,即:[1,3]

比如,求10以內(nèi)偶數(shù)的和:

sum = 0

for i in range(0, 10, 2):
    sum += i
print(sum)
while 循環(huán)

while是另外一種形式的循環(huán),它的語法如下所示:

while condition:
    do something

示例代碼:

a = 3
while a > 0:
    print(a)
    a -= 1

上面代碼循環(huán)3次,每次會對條件變量a減1,當while發(fā)現(xiàn)a不大于0時就會終止循環(huán)。

如果在循環(huán)里面,我們不對a進行改變,會發(fā)生什么?沒錯,會出現(xiàn)死循環(huán)!你的CPU使用率立馬爆滿100%,滿屏不斷刷新打印3。死循環(huán)是編程中的大忌,一定要小心哦。

break和continue

break是終止(或叫做“跳出”)整個循環(huán);continue是跳過本次循環(huán)后面的代碼去執(zhí)行循環(huán)的下一次。要理解這兄弟倆,還是看代碼吧:

for i in range(10):
    if i < 3:
        continue
    if i > 7:
        break
    prirnt(i)

這段代碼的意思是,
如果i<3就continue到下一次的循環(huán),continue后面的代碼不會被執(zhí)行,所以0,1,2就不會被打??;
如果i>7就break整個循環(huán),即跳出循環(huán),7后面的8,9也自然不會被打??;
不滿足上面兩個情況的3,4,5,6,7就被打印了。
所以這段代碼的輸出是:

3
4
5
6
7

以上例子是for循環(huán)的,但break和continue同樣適用于while循環(huán)。小猿們可以在本節(jié)結(jié)束后,練習(xí)一下while循環(huán)中的break和continue

循環(huán)的else

這應(yīng)該是Python獨有的特性吧,循環(huán)也可以有else。當循環(huán)正常結(jié)束(沒有break)后,就會執(zhí)行else代碼段:

for i in range(3):
    print(i)
else:
    print("loop ends")

for i in range(3):
    if i > 1:
        break
    print(i)
else:
    print("loop ends")

猜猜這段代碼的輸出吧,如果沒有把握就親自執(zhí)行一下就明白了。

總結(jié)

循環(huán)是程序中另外一種重要的流程控制,在批量處理數(shù)據(jù)、服務(wù)器程序中大量使用。

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

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

相關(guān)文章

  • Python基礎(chǔ)控制結(jié)構(gòu)

    摘要:基礎(chǔ)之控制結(jié)構(gòu)學(xué)習(xí)目標代碼塊與縮進條件語句語句語句的嵌套斷言循環(huán)循環(huán)循環(huán)中斷循環(huán)控制語句綜合嵌套列表解析式基礎(chǔ)相關(guān)鏈接學(xué)習(xí)目標是簡潔易學(xué)面向?qū)ο蟮木幊陶Z言。 Py...

    liaosilzu2007 評論0 收藏0
  • python基礎(chǔ)教程:異步IO API

    摘要:具有以下基本同步原語子進程提供了通過創(chuàng)建和管理子進程的。雖然隊列不是線程安全的,但它們被設(shè)計為專門用于代碼。表示異步操作的最終結(jié)果。 Python的asyncio是使用 async/await 語法編寫并發(fā)代碼的標準庫。通過上一節(jié)的講解,我們了解了它不斷變化的發(fā)展歷史。到了Python最新穩(wěn)定版 3.7 這個版本,asyncio又做了比較大的調(diào)整,把這個庫的API分為了 高層級API和...

    vboy1010 評論0 收藏0
  • python基礎(chǔ)教程:if條件判斷

    摘要:然而,計算機程序不只是順序執(zhí)行,為了實現(xiàn)更多更賦值的邏輯,程序的執(zhí)行需要更多的流程控制,它們就是條件判斷和循環(huán)。條件判斷過程中,可以單獨存在,后面的可要可不要,根據(jù)實際情況而定。 前面我們學(xué)習(xí)Python基礎(chǔ)語法和數(shù)據(jù)類型的過程中,已經(jīng)接觸過很多Python的程序代碼了,它們都是從第一行往后一行一行地執(zhí)行,也就是從頭到尾的順序執(zhí)行。 然而,計算機程序不只是順序執(zhí)行,為了實現(xiàn)更多更賦值的...

    rickchen 評論0 收藏0
  • Python 3 學(xué)習(xí)筆記——基礎(chǔ)語法

    摘要:迭代器和生成器字符串,列表或元組對象都可用于創(chuàng)建迭代器。創(chuàng)建自己的迭代器,需要在類中實現(xiàn)實現(xiàn)兩個方法與。方法返回一個特殊的迭代器對象,這個迭代器對象實現(xiàn)了方法并通過異常標識迭代的完成。要反向遍歷一個序列,首先指定這個序列,然后調(diào)用函數(shù)。 1. a, b = a, a + b 先計算右邊表達式,然后再同時賦值給左邊。 2. 條件控制和循環(huán)語句 條件控制 if condition_1: ...

    scola666 評論0 收藏0

發(fā)表評論

0條評論

CoderBear

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<