人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動態(tài)

Python中的for循環(huán)詳情

發(fā)布日期:2021-12-26 02:38 | 文章來源:站長之家

for語句實際上解決的是循環(huán)問題。在很多的高級語言中都有for循環(huán)(for loop)。

for語句其實是編程語言中針對可迭代對象的語句,它的主要作用是允許代碼被重復執(zhí)行。看一段來自維基百科的介紹:

In computer science, a for-loop (or simply for loop) is a control flow statement for specifying iteration, which allows code to be executed repeatedly。(作用:介紹了for循環(huán)是什么?)

A for-loop has two parts: a header specifying the iteration, and a body which is executed once per iteration. (for循環(huán)是什么構(gòu)成的?)

是什么:在計算科學中,是針對特殊迭代對象的控制流語句,能夠重復執(zhí)行
怎么構(gòu)成:一個頭部(是可迭代對象)+ 每個對象的執(zhí)行

1、可迭代對象

1.1什么是可迭代對象

可迭代對象(Iteratable Object) 是能夠一次返回其中一個成員的對象,比如我們常用的字符串、列表、元組、集合、字典等等之類的對象都屬于可迭代對象,獲取到這些對象我們就可以用for循環(huán)來進行操作。

簡單來理解,任何你可以循環(huán)遍歷的對象都是可迭代對象。

1.2怎么判斷

如何判斷一個Python對象是不是可迭代對象?通常是使用 isinstance()函數(shù)來判斷對象是否是可迭代對象

from collections import Iterable


小結(jié):在Python常見的數(shù)據(jù)對象中,只有數(shù)字是不可迭代的,字符串、元組、列表、字典等都是可迭代的

2、字符串的for循環(huán)

一次遍歷打印字符串中的每個元素

for i in "python": 
 print(i) 

輸出:

p
y
t
h
o
n

在看另一個例子:

for i in "abcdefg":
 print(i)

輸出:

a
b
c
d
e
f
g

3、列表的for循環(huán)

不管是單層列表還是多層的嵌套列表,我們都可以遍歷打印出來:

# 單層列表
a = ["小明","小紅","小張","小王"]
for i in a:
 print(i)  # 打印列表中的每個元素

小明
小紅
小張
小王

# 嵌套列表
b = ["小明","小紅","小張","小王",[19,20,18,23]]
for i in b:
 print(i)

小明
小紅
小張
小王

[19, 20, 18, 23]

上面的例子中最后一個元素當做整體被打印出來,如果也想分開打印呢?

def qiantao(x):# 定義一個函數(shù)
 for each in x:  # 遍歷每個原始列表中的每個元素
  if isinstance(each, list):  # 判斷每個元素是否是列表:isintance
qiantao(each)  # 如果是列表,遞歸執(zhí)行函數(shù)qiantao()
  else:
print(each)  # 如果不是列表,就直接打印該元素

b = ["小明","小紅","小張","小王",[19,20,18,23]]
# 調(diào)用函數(shù),傳入列表b
qiantao(b)  

小明
小紅
小張
小王
19
20
18
23

4、元組的for循環(huán)

元組tuple的循環(huán)和列表是類似的:

t = ("小明","小紅","小王")
for i in t:
 print(i)

小明
小紅
小王

5、字典的for循環(huán)

我們使用keys()values() 、items() ,我們可以分別遍歷字典的鍵、值和鍵值對。需要注意的是:遍歷字典默認是遍歷字典的鍵,先定義一個字典:

d = {"name":"Peter","age":20,"sex":"male","address":"china"}

5.1keys()

遍歷字典的鍵;

for i in d.keys():  # 遍歷字典的鍵
 print(i)

name
age
sex
address

for i in d:  # 默認就是遍歷鍵的取值
 print(i)

name
age
sex
address

5.2 values()

遍歷字典的值:

for i in d.values():  # 遍歷字典的值
 print(i)

Peter
20
male
china

5.3 items()

同時遍歷字典的鍵和值

for i in d.items():  # 遍歷字典的值
 print(i)

('name', 'Peter')
('age', 20)
('sex', 'male')
('address', 'china')

分別取出字典的鍵和值:

for k,v in d.items():
 print(k + "--->" + str(v))

name--->Peter
age--->20
sex--->male
address--->china

6、range函數(shù)的for循環(huán)

range函數(shù)是 Python 內(nèi)置函數(shù),用于生成一系列連續(xù)整數(shù),多用于 for 循環(huán)中。

  • range(start,stop,step)
  • start:包含start,默認為0,可不寫則默認為0
  • stop:不包含stop,必須寫
  • 步長step可正可負,默認是1,不能為0

6.1基礎(chǔ)案例

range(10)  # 生成的是可迭代對象

range(0, 10)

默認開頭是0

range(0,10)

range(0, 10)

指定開頭為1

range(1,10)

range(1, 10)

下面是將結(jié)果展開成列表:

list(range(10))  # 不包含10(尾部)

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

指定步長為2:

list(range(0,10,2))  # 不包含10,步長是2

[0, 2, 4, 6, 8]

總結(jié):range函數(shù)是包含頭部不包含尾部

for i in range(10):
 print(i)

0
1
2
3
4
5
6
7
8
9

6.2找出100以內(nèi)能夠被5整除的數(shù)

for i in range(101):  # 不包含101,0-100
 if i % 5 == 0:  # %表示求余數(shù):余數(shù)為0則表示整除
  print(i,end="、")

0、5、10、15、20、25、30、35、40、45、50、55、60、65、70、75、80、85、90、95、100、

6.3高斯求和

求出1到100的所有數(shù)之和

sum = 0
for i in range(1,101):
 sum = sum + i  # 每循環(huán)一次,sum就是這個數(shù)字
 
sum

5050

求出100以內(nèi)奇數(shù)的和:

sum = 0
# 步長為2,從1開始:1,3,5,7...
for i in range(1,101,2):  
 sum = sum + i
 
sum

2500

求出100以內(nèi)偶數(shù)的和:

sum = 0
# 步長為2,從2開始:2,4,6,8...
for i in range(2,101,2):  
 sum = sum + i
 
sum

2550

7、多個for語句

for語句中還可以再使用for語句:

for i in ["python","java","html"]:
 for j in i:
  print(i.upper(),j) # upper():將字母變成大寫

PYTHON p
PYTHON y
PYTHON t
PYTHON h
PYTHON o
PYTHON n
JAVA j
JAVA a
JAVA v
JAVA a
HTML h
HTML t
HTML m
HTML l

for i in [4,5,6]:
 for j in [1,2,3]:
  print(i*j)  # 實現(xiàn)任意兩個數(shù)的乘法

4 # 4*1
8 # 4*2
12 # 4*3
5 # 5*1
10 # 5*2
15 # 5*3
6 # 6*1
12 # 6*2
18 # 6*3

8、列表推導式

(1)上面我們提到能夠被5整除的數(shù):使用for循環(huán)和if來解決

five = []  # 定義空列表
for i in range(101):  # 不包含101,0-100
 if i % 5 == 0:  # %表示求余數(shù):余數(shù)為0則表示整除
  five.append(i)  # 添加到列表中
  
five

[0,
5,
10,
15,
20,
25,
30,
35,
40,
45,
50,
55,
60,
65,
70,
75,
80,
85,
90,
95,
100]

(2)使用列表推導式如何實現(xiàn)呢?

[x for x in range(101) if x % 5 == 0]

[0,
5,
10,
15,
20,
25,
30,
35,
40,
45,
50,
55,
60,
65,
70,
75,
80,
85,
90,
95,
100]

9、for-else

也許你聽過if-else,但是聽到for-else語句嗎?這也算是Python中的一個冷門知識點

for i in range(5):
 print(i)
else:
 print("結(jié)束")

0
1
2
3
4
結(jié)束

也就是說:for語句結(jié)束了依然會執(zhí)行else的語句

for i in []:
 print(i)
 
else:
 print("結(jié)束")

結(jié)束

下面的例子中,當i除以3的余數(shù)是2的時候回跳出并終止整個for循環(huán),后面的else就不會執(zhí)行了

for i in range(10):
 print(i)
 if i % 3 == 2:
  break
else:
 print("結(jié)束")

0
1
2

10、實現(xiàn)三角陣列

for i in range(1,11):
 for k in range(1,i):
  print(k, end=" ")
 print("\n")


1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
1 2 3 4 5 6
1 2 3 4 5 6 7
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8 9

如果我們想要倒過來,該如何實現(xiàn)呢?

for i in range(10,0,-1):
 for k in range(1,i):
  print(k, end=" ")
 print("\n")

1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7
1 2 3 4 5 6
1 2 3 4 5
1 2 3 4
1 2 3
1 2
1

11、99乘法表

下面舉個例子來說明如何實現(xiàn)99乘法表

for i in range(1,10):
 for j in range(1,i+1):  # 為了保證有4*4,也就是同個數(shù)字相乘的等式,需要讓i出現(xiàn),使用i+1
  print('{}x{}={}'.format(j, i, i*j), end=" ")  # end的結(jié)束符號用空格
 print("\n")


到此這篇關(guān)于Python中的for循環(huán)詳情的文章就介紹到這了,更多相關(guān)Python中的for循環(huán)內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!

版權(quán)聲明:本站文章來源標注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學習參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實時開通

自選配置、實時開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部