《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側重點是共通處理部分的封裝和使用.用於改善共通元件 和目標元件之間的...