友快網

導航選單

【機器學習】程式設計中的迴圈:迴圈在程式設計中,迴圈順序多次重複同一組

什麼是迴圈

在程式設計中,迴圈意味著以相同的順序多次重複同一組計算。

想想現實生活中的情況。你是一位在森林裡測量樹木的野外生物學家。你選一棵樹,測量它的直徑和高度,把它們寫在你的筆記本上,估計它的總體積。接下來,你再選一棵樹,測量它的直徑和高度,把它們寫在你的筆記本上,估計它的總體積。然後,你再選一棵樹,測量它的直徑和高度,把它們寫在你的筆記本上,估計它的總體積。

您將不斷重複相同的過程,直到示例中的所有樹都用完為止。在程式設計行話中,您將遍歷每棵樹,並以相同的順序執行相同的任務集。

回到程式設計,如果給您一個整數值列表,並要求對每個項進行平方,然後再加5,最後報告結果——這就是一個迴圈的例子。

我們可以迴圈什麼?

那麼我們可以迴圈什麼呢?基本上,任何可迭代的資料型別都可以使用迴圈進行操作。Python中的可迭代物件是以不同資料格式儲存的值序列,例如:

列表(例如。[15]10、12、13日)

元組(例如(10,12,13,15))

字典(例如{‘ Name ’: ‘ Alan ’, ‘ Age ’: 25})

字串(例如‘ Data Science ’)

迴圈都有那些型別?

主要有兩種迴圈:for迴圈和while迴圈。其中,for迴圈是應用於資料科學問題中最常見的一種迴圈。關鍵的區別是:

for迴圈對iterable物件中的每個元素進行有限次數的迭代

while迴圈一直進行,直到滿足某個條件

遍歷列表

遍歷一個列表非常簡單。給一個值列表,並要求對每個項做一些事情。假設你有:

my_list = [1,2,3,4]

然後要求你計算列表中每個值的平方:

for each_value in my_list:

print(each_value * each_value)Out:

1

4

9

16

類似地,你可以做一些更復雜的迴圈(例如‘巢狀迴圈’)。例如,給你兩個列表並要求:

(i)將一個列表的值與另一個列表相乘

(ii)將它們追加到一個空列表中

(iii)打印出新的列表。

new_list = []list1 = [2, 3, 4]

list2 = [4, 5, 6]for i in list1:

for j in list2:

new_list。append(i*j)

print(new_list)Out:

[8, 10, 12, 12, 15, 18, 16, 20, 24]

遍歷元組

遍歷元組可能會有點複雜,這取決於元組的結構和要完成的任務。

讓我們在一個列表中儲存一些元組,每個元組代表一個類中學生的姓名和年齡:

students = [(‘Allie’, 22), (‘Monty’, 18), (‘Rebecca’, 19)]

現在的任務是:

(i)提取所有的年齡

(ii)將它們儲存在一個列表中

(iii)計算平均年齡

ages = []for i,j in students:

ages。append(j)

avg = sum(ages)/len(ages)

print(avg)

Out:

19。666666666666668

這裡的每個元組都包含兩個條目(姓名和年齡)。即使您對名稱不感興趣,透過i和j,您將指定這兩個專案,並要求將專案j (age)追加到一個新的列表中。它被稱為“元組拆包”。

遍歷字典

Python中的字典是鍵-值對的集合:字典中的每一項都有一個鍵和一個相關聯的值。一個字典的例子:

# fruit price dictionary

fruit_prices = {“apple”: 2。50, “orange”: 4。99, “banana”: 0。59}

您可以迴圈遍歷這些dictionary元素並執行各種操作。下面是一些例子:

提取字典中的所有鍵值:

for i in fruit_prices。keys():

print(i)

Out:

apple

orange

banana

將所有的值儲存在一個列表中:

values = []

for i in fruit_prices。values():

values。append(i)

print(values)

Out:

[2。5, 4。99, 0。59]

遍歷字串

讓我們考慮字串- “ Hello ”。它看起來像一個可迭代物件嗎?事實上,它是。

for i in ‘Hello’:

print(i)

Out:

H

e

l

l

o

可以使用for迴圈解包字串中的每個字元,並對它們執行各種操作。

同樣,也可以遍歷句子中的每個單詞。但是在這種情況下,需要一個額外的步驟來分割句子。

sent = ‘the sky is blue’

# splitting the sentence into words

sent_split = sent。split()

# extract each word with a loop

for i in sent_split:

print(i)

Out:

the

sky

is

blue

While迴圈

與for迴圈類似,while迴圈重複執行一個程式碼塊——只要條件為真。只有當迴圈條件為false時,迴圈才會中止。

while迴圈的一般結構是這樣的:

i = 0while i <=5:

print(i)

i = i+1

# option to break out of the loop

Out:

0

1

2

3

4

5

在上面的每一次迭代中,i的值都被輸出到5。在此之後,while迴圈條件變為false(即i = 6時,i≤5變為false)。

user_id = ‘user101’

while True:

user = input(‘Enter your user ID: ’)

if user == user_id:

print(“You have entered ”, user)

break

else:

print(“Enter a valid user ID ”)

迴圈控制:continue, break, pass

有三種所謂的迴圈控制關鍵字:continue, break, pass。這些語句改變迴圈流,並允許程式在觸發特定外部條件時退出或跳過部分迴圈。

Break

如果在迴圈中存在break語句,則在滿足條件時終止迴圈。

string = ‘hello, there’

for i in string:

if i == ‘,’:

break

print(i)

Out:

h

e

l

l

o

在上面的程式碼片段中,我們要求程式在找到字串中的逗號並執行下一條語句(列印i)

continue

continue語句簡單地跳過一個迭代並繼續到下一個迭代,而不是跳出迴圈。

讓我們執行上面相同的程式碼,但是使用continue關鍵字。

string = ‘hello, there’

for i in string:

if i == ‘,’:

continue

print(i)Out:

h

e

l

l

o

t

h

e

r

e

在這種情況下,如果迴圈遇到了逗號迴圈會繼續跳過逗號。

Pass

pass不做任何事情,它只是一個還沒有寫的語句的佔位符。

string = ‘hello, there’

for i in string:

pass

如果我們沒有在那裡放入一個pass,它將丟擲一個錯誤訊息,其餘的程式碼將不會執行。

總結

本文的目的是直觀地瞭解Python中的for迴圈和while迴圈。給出瞭如何迴圈遍歷可迭代物件的例子,如列表、元組、字典和字串。在文章的最後,我們透過示例介紹了迴圈控制語句的概念——break、continue和pass。

本文旨在對迴圈的工作方式進行初步概述。

作者:Mahbubul Alam

deephub翻譯組

上一篇:f2 f3和fbeta模型效能差異評估:f指標的精度和召回率是如何迴歸的
下一篇:【獨家】餘承東自曝開發者屬性:我們為什麼要做一場失敗?