中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python循環語句

發布時間:2020-06-13 02:37:16 來源:網絡 閱讀:939 作者:LJ_baby 欄目:編程語言

python中的循環

python中的 循環語句有兩種 for...in循環 和 while循環。循環控制語句,和其他的語言類似,也有break和continue。與其他語言不同的地方是for...in循環和while循環,后面可以有else語句,具體下面會依次介紹~

循環語句的控制結構圖如下:
python循環語句

for in 循環

for in 循環的語法如下:

for <variable> in <sequence>:
    <statements>

其中<sequence>可以是一個字符串或者也可以是一個列表 等...

for i in 'hello':                  # 遍歷字符串
    print(i)
輸出結果:
h
e
l
l
o
######

for i in ['a', 'b', 'c', 'd']:      # 遍歷列表
    print(i)
輸出結果:
a
b
c
d
######

d = {'a': 1, 'b': 2, 'c': 3} 
for k, v in d.items():         # 遍歷字典,可同時迭代key和value
    print(k, v)
輸出結果:
a 1
b 2
c 3

這些可以直接被迭代的對象 統稱為可迭代對象:Iterable(collections模塊的Iterable類型),只要是Iterable對象就可以作用于for循環。可以使用 isinstance() 判斷一個對象是否是 Iterable 對象,示例如下:

lst = (1, 2, 3)                                 # 元組類型
flag = isinstance(lst, Iterable)
print(flag)

輸出結果:
True                                             # 元組為可迭代對象

如下兩種數據類型可以總用于for循環中:
1)集合數據類型,如:list、tuple、dict、set、str...
2)生成器(generator)和帶yield的generator function

range()函數

range()函數為python內置函數,能夠生成數列。

hello_range = range(3)
print(isinstance(hello_range, Iterable))            
for i in hello_range:       # 循環遍歷 數列
    print(i)

輸出結果:
True                              #  range(3) 所生成的對象為 可迭代對象
0
1
2

使用range指定數列的區間:

>>> for i in range(2,5):
...     print(i)
...
2
3
4

除了指定區間,還可以指定步長:

>>> for i in range(2, 10, 3):
...     print(i)
...
2
5
8

range()函數除了可以作用于for循環中,還可以用于創建list或者tuple:

hello_list = list(range(10))           # 生成 list
print(hello_list)

hello_tuple = tuple(range(10))    # 生成 tuple
print(hello_tuple)

for...in 循環中的 else 語句

for...in 后面還可以有 else 語句,語法如下:

for <variable> in <sequence>:
    <statements>
else:
    <statements>

else 中的語句,會在 for 循環結束之后執行:

>>> for i in range(5):
...     print(i)
... else:
...     print('end...')
...
0
1
2
3
4
end...

Tip:若 for 循環被 break 終止,則 else 中的語句不會被執行,下面會介紹~

while循環

python中while循環的語法如下:

while <condition>:
    <statements>

條件滿足,則一直循環,知道條件不滿足,退出循環~

示例如下,求1 ... 100 的總和:

sum = 0
n = 1
while n <= 100:
    sum += n
    n += 1
print(sum)                # 輸出結果:5050

while 循環中的 else 語句

類似于 for...in 循環,while 循環后面也可以有 else 語句,語法如下:

while <condition>:
    <statements>
else:
    <statements>

當 while 后面的判斷語句返回值為 false,則循環終止,然后執行 else 中的語句。同 for...in 循環一樣,若循環被 break 終止,則不會執行 else 中的語句。

sum = 0
n = 1
while n <= 100:
    sum += n
    n += 1
else:
    print('end...loop')
print(sum)

輸出結果:
end...loop
5050

無限循環

可以使 while 后面的判斷語句一直返回為 True,這樣循環將不會被終止,一直執行循環體中的語句:

while True:
    username = input('請輸入用戶名:')
    print('welcome %s' % username)

輸出結果:
請輸入用戶名:Obama
welcome Obama
請輸入用戶名:Trump
welcome Trump
請輸入用戶名:
......
......

例如 Linux 終端用戶的登錄,若用戶輸入的用戶名和密碼不正確,則會一直要求用戶重新輸入,直到輸入正確為止~
簡單模擬下:

username = 'baby'
passwd = '123456'
flag = True
while flag:
    login_username = input('請輸入用戶名:')
    login_passwd = input('請輸入密碼:')
    if login_username == username and login_passwd == passwd:
        flag = False
else:
    print('Welcome %s' % username)

輸出結果:
請輸入用戶名:Obama
請輸入密碼:abc
請輸入用戶名:Trump
請輸入密碼:123
請輸入用戶名:baby
請輸入密碼:123456
Welcome baby

break和continue語句

在循環語句中還可以使用 break ,contiune 來控制循環流程。

continue語句

continue 用于略過本次循環中剩下的語句,直接進入下一次循環,示例如下:

# 計算1...100的奇數和

sum =0
count = 0
while count < 100:
    count += 1
    if count % 2 != 1:              # 若不是奇數,直接進入下一次循環
        continue
    sum += count
print('sum=%s' % sum)

輸出結果:
sum=2500
break語句

break 用于跳出最近的一個循環,示例如下:

sum =0
count = 1
while count <= 100:
    if count == 51:
        break
    sum += count
    count += 1
print('sum=%s' % sum)

輸出結果:
sum=1275

當count為51時,終止循環,則sum計算的是 1...50 的總和

Tip:break跳出循環,僅跳出最近的一個循環,若循環只有一層,執行break之后,循環就結束了;若循環有2層,則外側的循環還會繼續

lst_1 = ['a......', 'b......', 'c......']
lst_2 = [1, 2, 3]
for i in lst_1:
    print(i)
    for j in lst_2:
        print(j)

輸出結果:
a......
1
2
3
b......
1
2
3
c......
1
2
3

如上所示,這里有兩層循環,現在,當內側循環至2時,使用break終止循環(見下面的示例),可以看到,內側循環在輸出lst_2中的2之后終止,但是外側的循環還在繼續:

lst_1 = ['a...', 'b...', 'c...']
lst_2 = [1, 2, 3]
for i in lst_1:
    print(i)
    for j in lst_2:
        print(j)
        if j == 2:
            break
輸出結果:
a...
1
2
b...
1
2
c...
1
2

break還有一個注意點,就是當循環被break終止時,不會執行循環后面的 else 語句

lst_1 = ['a...', 'b...', 'c...']
for i in lst_1:
    print(i)
else:
    print('end...')

輸出結果:
a...
b...
c...
end...        # 正常執行else中的內容

lst_1 = ['a...', 'b...', 'c...']
for i in lst_1:
    print(i)
    if lst_1.index(i) == 1:      # 當循環值lst_1下標為1的元素時,終止循環
        break
else:
    print('end...')

輸出結果:                       # 沒有 c... 和 end... 輸出
a...
b...

while 循環也一樣,這里就直接使用上面的例子:

sum = 0
count = 1
while count <= 100:
    if count == 51:
        break
    sum += count
    count += 1
else:
    print('end loop...')
print('sum=%s' % sum)

輸出結果:
sum=1275                  # else 中的 end loop... 并沒有輸出

.................^_^

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

应城市| 新泰市| 广东省| 吉林省| 南部县| 大冶市| 积石山| 大荔县| 固阳县| 永吉县| 疏附县| 从江县| 湖口县| 扶绥县| 滦南县| 吉林省| 金华市| 鹿邑县| 龙门县| 江华| 天峻县| 东莞市| 喜德县| 洱源县| 湄潭县| 昌宁县| 本溪市| 德令哈市| 合江县| 包头市| 通渭县| 彰化县| 巧家县| 西和县| 富锦市| 荥经县| 盐山县| 常熟市| 临洮县| 大方县| 南丹县|