溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

python for循環(huán)(11)

發(fā)布時(shí)間:2020-07-07 14:38:33 來源:網(wǎng)絡(luò) 閱讀:430 作者:qq5d6f345f0205e 欄目:編程語言

在python開發(fā)中,除了前篇文章介紹的while循環(huán)還有一個(gè)for循環(huán)也經(jīng)常使用,兩者使用都是大同小異,for循環(huán)的使用相對(duì)于while循環(huán)更加靈活,下面我們一起來了解下具體區(qū)別。

?

一.for 循環(huán)語法


1

2

for 變量 in 序列:

????執(zhí)行語句......

可能目前大家對(duì)序列還比較陌生,序列可以是數(shù)字區(qū)間,比如0~100;也可以是字符串;也可以是列表/字典/元祖(后面在講解這三個(gè)),先看一個(gè)簡(jiǎn)單例子:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

# !usr/bin/env python

# -*- coding:utf-8 _*-

"""

@Author:何以解憂

@Blog(個(gè)人博客地址): shuopython.com

@WeChat Official Account(微信公眾號(hào)):猿說python

@Github:www.github.com

@File:for循環(huán).py

@Time:2019/9/19 21:22

?

@Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅(jiān)持不懈地積累!

"""

?

for a in range(0, 5): # 表示 a 的初始值為 0 并且小于5,a取值重0開始依次遞增: 0 1 2 3 4

????print(a)

?

print("循環(huán)結(jié)束,退出程序")

輸出結(jié)果:

1

2

3

4

5

6

0

1

2

3

4

循環(huán)結(jié)束,退出程序

range()函數(shù) 也是python 中的內(nèi)置函數(shù),range(x,y)意思就是重x到y(tǒng)-1之間的整數(shù)不包括y.

1

2

range(5,10) 表示:5 6 7 8 9

range(0,10) 表示:0 1 2 3 4 5 6 7 8 9

?

對(duì)于上面代碼我們同樣用while循環(huán)也來實(shí)現(xiàn)以下:

1

2

3

4

5

a = 0

while a < 5:

????print(a)

????a += 1

print("循環(huán)結(jié)束,退出程序")

由此可見,while循環(huán)和for循環(huán)實(shí)現(xiàn)相同的功能,for循環(huán)比while 循環(huán)使用更加靈活,具體分析下for循環(huán)中的參數(shù):

1

for i in range(n,m):

i:變量名,命名為a、b、c都可以,無所謂

n:變量 i的值默認(rèn)重n開始,i = n

m:循環(huán)過程中,默認(rèn)i值偏移步長加1,直到 i 值>= m,循環(huán)停止,注意 :i 的最大值等于 m-1?

python for循環(huán)(11)

?

二.實(shí)戰(zhàn)練習(xí)


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

# 遍歷字符串,依次輸出字符串中的每一個(gè)字符

for a in "python教程 - 猿說python": # a 重字符串的第一個(gè)字母開始,直到遍歷字符串結(jié)尾

????print(a)

?

print("*"*20) # 小竅門:連續(xù)輸出 20 個(gè) *

?

# 遍歷0~100之間的數(shù)字,但是不包括100 ,默認(rèn) a 重 0 開始依次遞增直到 99 結(jié)束

for a in range(0,100):

????if a % 2 == 0: # 判斷奇偶,如果是偶數(shù)直接跳過本次循環(huán),繼續(xù)下一次循環(huán)

????????continue

????elif a > 5: # 如果是奇數(shù)并且a的值大于 5

????????a *= 10

????else:?? # 如果是奇數(shù)并且a的值小于5

????????a += 20

?

????if a > 30: # 如果a的值大于30 直接跳出循環(huán)

????????break

?

????print(a)

?

print("循環(huán)結(jié)束,退出程序")

輸出結(jié)果:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

p

y

t

h

o

n

-

p

y

t

h

o

n

********************

21

23

25

循環(huán)結(jié)束,退出程序


代碼分析:

以上代碼綜合了前面學(xué)習(xí)的條件表達(dá)式if/else?以及?continue/break使用。for循環(huán)過程中,變量a值默認(rèn)偏移依次遞增+1,如果希望for循環(huán)能實(shí)現(xiàn)偏移遞減或者遞增+2或者遞減-2呢?

?

要實(shí)現(xiàn)在for循環(huán)中偏移遞增+2或者遞減-2,需要再加一個(gè)參數(shù)在for循環(huán)中,語法如下:

1

for i in range(n,m,k):

i:變量名,命名為a、b、c都可以,無所謂

n:變量 i的值默認(rèn)重n開始,i = n

k:變量 k的值如果不設(shè)置,默認(rèn)偏移步長為1;設(shè)置k 值就意味 偏移步長等于 k (k可以是整數(shù)或者浮點(diǎn)數(shù))

m:循環(huán)過程中,i的值默認(rèn)偏移步長依次遞增k,如果沒有設(shè)置k值,默認(rèn)k = 1, 直到 i >= m,循環(huán)停止,注意 :i 的最大值等于 m-1

python for循環(huán)(11)

代碼如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

for i in range(0, 10, 2):??# 默認(rèn) i 值重0開始,偏移步長依次遞增+2并且小于10

????print(i, end=" ")??# print 函數(shù)默認(rèn)會(huì)換行,強(qiáng)制設(shè)置" "(空格)代替"\n"(換行)

?

print("\n") # 換行

print("**"*20)

for i in range(0, -10, -2):??# 默認(rèn) i 值重0開始,偏移步長依次遞減-2并且大于-10

????print(i, end=" ")??# print 函數(shù)默認(rèn)會(huì)換行,強(qiáng)制設(shè)置" "(空格)代替"\n"(換行)

?

print("\n")# 換行

print("**"*20)

?

str1 = "猿說python"

print("len(str1):%d " % len(str1))

for i in range(0,len(str1),2): # 默認(rèn) i 值重0開始,偏移步長依次遞增+2并且小于len(str1)

????print(str1[i])

輸出結(jié)果:

1

2

3

4

5

6

7

8

9

10

11

0 2 4 6 8

?

****************************************

0 -2 -4 -6 -8

?

****************************************

len(str1):8

p

t

o

?

?

三.重點(diǎn)總結(jié)

1.for循環(huán)中continue和break的使用方法和while使用方法一樣

2.for循環(huán)能直接遍歷字符串/數(shù)字區(qū)間/列表等序列

?

猜你喜歡:

1.python while循環(huán)

2.python 循環(huán)中使用continue/break

?

轉(zhuǎn)載請(qǐng)注明:猿說Python???python for循環(huán)

?


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI