Python程式設計思想(12) for in迴圈

2021-10-06 22:15:20 字數 3646 閱讀 5855

《python程式設計思想》專欄

目錄

1. for-in迴圈的基礎知識

2. 用for-in迴圈變數元組和列表

3. 用for-in迴圈遍歷字典

4. 統計列表中單詞的出現次數

for-in迴圈可以用於遍歷範圍、列表、元素和字典等可迭代物件包含的元素。 for-in迴圈的語法格式如下:

for 變數 in 字串|範圍|集合等:

statements

上面的語法格式說明如下:

下面的程式用for-in迴圈計算階乘。

示例**:for-in迴圈.py

str_n = input("請輸入乙個用於計算階乘的整數n:")

n = int(str_n)

result = 1

# 使用for-in迴圈遍歷範圍

for i in range(1, n + 1):

result *= i

print(f'的階乘是')

這段**會根據輸入的n決定迴圈多少次。假設使用者輸入了10,那麼迴圈就會在1到10之間迴圈(包括1和10)。也就是說,for-in迴圈將自動迴圈10次,每次迴圈時,i的值都會自動賦予range包含的每個元素(從1到10)。

執行這段程式,如果輸入10,會看到有如下的執行結果:

請輸入乙個用於計算階乘的整數n:10

10的階乘是3628800

其中for-in中的變數可以稱為迴圈計數器。

for-in迴圈的主要作用之一就是遍歷元組和列表。元組和列表中的元素有多少,for-in迴圈就會迴圈幾次。對於每一次迴圈,迴圈計數器會被依次賦予當前元素的值。

下面的**用for-in迴圈分別遍歷元組和列表中的所有元素。其中對列表的遍歷,會判斷列表元素是否為數值型別,如果是,則累加這些值,並統計數值型別值的個數。

示例**:用for-in迴圈遍歷元組和列表.py

a_tuple = ('李寧', '蒙娜麗寧', '極客起源')

for value in a_tuple:

print('當前元素是:', value)

print('-------------')

new_list = [15, 44, 3.2, 64, true, 'hello world', 56, '極客起源', 6666]

my_sum = 0

my_count = 0

for value in new_list:

# 如果該元素是整數或浮點數

if isinstance(value, int) or isinstance(value, float):

print(value)

# 累加該元素

my_sum += value

# 數值元素的個數加1

my_count += 1

print('總和:', my_sum)

print('平均數:', my_sum / my_count)

執行這段這段**,會輸出如下內容:

總和: 6849.2

平均數: 978.4571428571428

在上面的**中,儘管可以迭代元組和列表,但並沒有元組和列表的索引,也就是說,在for-in迴圈中並不知道當前遍歷到元組或列表的哪乙個元素。不過for-in迴圈同樣可以使用索引遍歷元組和列表,然後通過索引訪問元組或列表的具體元素。**如下:

示例**:for-in迴圈遍歷元組和列表.py

a_list = [230,false, 50.12, '極客起源', -3.0]

# 遍歷0到len(a_list)的範圍

for i in range(0, len(a_list)) :

# 根據索引訪問列表元素

print("第%d個元素是 %s" % (i , a_list[i]))

執行這段**,會輸出如下的內容:

第0個元素是 230

第1個元素是 false

第2個元素是 50.12

第3個元素是 極客起源

第4個元素是 -3.0

字典與元組和字典不同,元組和字典每乙個元素只有乙個值,而字典每乙個元素有兩個值:key和value。字典必須包含3個方法:

因此,如果要遍歷字典,完全可以先呼叫字典的上面三個方法之一來獲取字典的所有key- value對、所有key、所有 value,然後再進行遍歷。如下面的**先遍歷了key-value對,然後分別遍歷了key和value。

my_dict = 

# 通過items()方法遍歷所有key-value對

# 由於items方法返回的列表元素是key-value對,因此要宣告兩個變數

for key, value in my_dict.items():

print('key:', key)

print('value:', value)

print('-------------')

# 通過keys()方法遍歷所有key

for key in my_dict.keys():

print('key:', key)

# 在通過key獲取value

print('value:', my_dict[key])

print('-------------')

# 通過values()方法遍歷所有value

for value in my_dict.values():

print('value:', value)

字典的用處非常大,例如,可以統計出現在列表中單詞的個數,**如下:

示例**:統計列表中字串出現從次數.py

src_list = [120, 3.4, 3.4, 121, 120, 40, 3.4, 'python', 45, 3.1]

statistics = {}

for value in src_list:

# 如果字典中包含value代表的key

if value in statistics:

# 將value元素代表出現次數加1

statistics[value] += 1

# 如果字典中不包含value代表的key,說明該元素還未出現

else:

# 將value元素代表出現次數設為1

statistics[value] = 1

# 遍歷dict,列印出各元素的出現次數

for ele, count in statistics.items():

print("%s的出現次數為:%d" % (ele, count))

程式執行結果如:

120的出現次數為:2

3.4的出現次數為:3

121的出現次數為:1

40的出現次數為:1

python的出現次數為:1

45的出現次數為:1

3.1的出現次數為:1

上面**的基本原理就是統計所有出現的原生,並將出現過的元素的出現次數儲存在statistics字典中,如果存在,則累計1,如果不存在,說明是頭一次遇到這個單詞,將statistics中與key對應的value賦為1。

python小白程式設計12

列印出所有的 水仙花數 所謂 水仙花數 是指乙個三位數,其各位數字立方和等於該數本身。例如 153是乙個 水仙花數 因為153 1的三次方 5的三次方 3的三次方。原理 需要分別輸出某個數的個十百位上的數字,將它們分別立方相加與這個數本身是否相等,相等則為水仙花數,如何輸出百位,十位,個位呢?範圍是...

程式設計思想

pop面向過程的程式設計思想把電腦程式看作是一組命令的集合,即一組函式的順序執行。面向過程設計時,將整個程式切分成幾個函式模組,每乙個模組負責解決乙個問題。oop把物件作為程式的基本單元,乙個物件包含了資料和運算元據的方法 method 物件導向的程式設計把電腦程式視為一組物件的集合,每個物件都可以...

Python語言 AOP程式設計思想總結

aspect orentied programming aop,面向方面程式設計 object orentied programming oop,物件導向程式設計 aop程式設計是以oop為基礎,oop側重點是物件抽象和封裝,aop側重點是共通處理部分的封裝和使用.用於改善共通元件 和目標元件之間的...