欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2021年10月12日 11:40:51   作者:尤而小屋  
這篇文章主要介紹了Python中的for循環(huán),for語(yǔ)句實(shí)際上解決的是循環(huán)問(wèn)題。在很多的高級(jí)語(yǔ)言中都有for循環(huán)(for loop)。下面就來(lái)簡(jiǎn)單給大家介紹Python中的for循環(huán)的相關(guān)資料,需要的朋友可以參考一下

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

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

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)成的?)

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

1、可迭代對(duì)象

1.1什么是可迭代對(duì)象

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

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

1.2怎么判斷

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

from collections import Iterable



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

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

一次遍歷打印字符串中的每個(gè)元素

for i in "python": 
    print(i)    


輸出:

p
y
t
h
o
n

在看另一個(gè)例子:

for i in "abcdefg":
    print(i)


輸出:

a
b
c
d
e
f
g

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

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

# 單層列表

a = ["小明","小紅","小張","小王"]

for i in a:
    print(i)  # 打印列表中的每個(gè)元素

小明
小紅
小張
小王

# 嵌套列表

b = ["小明","小紅","小張","小王",[19,20,18,23]]

for i in b:
    print(i)

小明
小紅
小張
小王

[19, 20, 18, 23]

上面的例子中最后一個(gè)元素當(dāng)做整體被打印出來(lái),如果也想分開(kāi)打印呢?

def qiantao(x):   # 定義一個(gè)函數(shù)
    for each in x:  # 遍歷每個(gè)原始列表中的每個(gè)元素
        if isinstance(each, list):  # 判斷每個(gè)元素是否是列表: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() ,我們可以分別遍歷字典的鍵、值和鍵值對(duì)。需要注意的是:遍歷字典默認(rèn)是遍歷字典的鍵,先定義一個(gè)字典:

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:  # 默認(rèn)就是遍歷鍵的取值
    print(i)


name
age
sex
address

5.2 values()

遍歷字典的值:

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


Peter
20
male
china

5.3 items()

同時(shí)遍歷字典的鍵和值

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,默認(rèn)為0,可不寫則默認(rèn)為0
  • stop:不包含stop,必須寫
  • 步長(zhǎng)step可正可負(fù),默認(rèn)是1,不能為0

6.1基礎(chǔ)案例

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


range(0, 10)

默認(rèn)開(kāi)頭是0

range(0,10)


range(0, 10)

指定開(kāi)頭為1

range(1,10)


range(1, 10)

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

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


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

指定步長(zhǎng)為2:

list(range(0,10,2))  # 不包含10,步長(zhǎng)是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就是這個(gè)數(shù)字
    
sum

5050

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

sum = 0

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

2500

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

sum = 0

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

2550

7、多個(gè)for語(yǔ)句

for語(yǔ)句中還可以再使用for語(yǔ)句:

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)  # 實(shí)現(xiàn)任意兩個(gè)數(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、列表推導(dǎo)式

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

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)使用列表推導(dǎo)式如何實(shí)現(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

也許你聽(tīng)過(guò)if-else,但是聽(tīng)到for-else語(yǔ)句嗎?這也算是Python中的一個(gè)冷門知識(shí)點(diǎn)

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


0
1
2
3
4
結(jié)束

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

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


結(jié)束

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

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


0
1
2

10、實(shí)現(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

如果我們想要倒過(guò)來(lái),該如何實(shí)現(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乘法表

下面舉個(gè)例子來(lái)說(shuō)明如何實(shí)現(xiàn)99乘法表

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


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

相關(guān)文章

  • Python修改DBF文件指定列

    Python修改DBF文件指定列

    這篇文章主要介紹了Python修改DBF文件指定列的實(shí)現(xiàn),幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-12-12
  • 基于Python fminunc 的替代方法

    基于Python fminunc 的替代方法

    今天小編就為大家分享一篇基于Python fminunc 的替代方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-02-02
  • 記一次pyinstaller打包pygame項(xiàng)目為exe的過(guò)程(帶圖片)

    記一次pyinstaller打包pygame項(xiàng)目為exe的過(guò)程(帶圖片)

    這篇文章主要介紹了記一次pyinstaller打包pygame項(xiàng)目為exe的過(guò)程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Python之多線程退出與停止的一種實(shí)現(xiàn)思路

    Python之多線程退出與停止的一種實(shí)現(xiàn)思路

    這篇文章主要介紹了Python之多線程退出與停止的一種實(shí)現(xiàn)思路,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • python?pygame實(shí)現(xiàn)五子棋雙人聯(lián)機(jī)

    python?pygame實(shí)現(xiàn)五子棋雙人聯(lián)機(jī)

    這篇文章主要為大家詳細(xì)介紹了python?pygame實(shí)現(xiàn)五子棋雙人聯(lián)機(jī),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • 對(duì)python3 urllib包與http包的使用詳解

    對(duì)python3 urllib包與http包的使用詳解

    今天小編就為大家分享一篇對(duì)python3 urllib包與http包的使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • python with statement 進(jìn)行文件操作指南

    python with statement 進(jìn)行文件操作指南

    在Python中,with關(guān)鍵字是一個(gè)替你管理實(shí)現(xiàn)上下文協(xié)議對(duì)象的好東西。例如:file等。在file的結(jié)束,會(huì)自動(dòng)關(guān)閉該文件句柄。而這正是本文所需要的
    2014-08-08
  • Python matplotlib畫圖實(shí)例之繪制擁有彩條的圖表

    Python matplotlib畫圖實(shí)例之繪制擁有彩條的圖表

    這篇文章主要介紹了Python matplotlib畫圖實(shí)例之繪制擁有彩條的圖表,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2017-12-12
  • 利用matlab與Excel交互之單元格操作

    利用matlab與Excel交互之單元格操作

    Excel是廣泛使用的“電子表格”,Matlab則具有強(qiáng)大的數(shù)值計(jì)算、統(tǒng)計(jì)分析以及圖形可視化能力,這篇文章主要給大家介紹了關(guān)于利用matlab與Excel交互之單元格操作的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • PyCharm 專業(yè)版安裝圖文教程

    PyCharm 專業(yè)版安裝圖文教程

    這篇文章主要介紹了PyCharm 專業(yè)版安裝圖文教程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02

最新評(píng)論