Python基礎第五節 迴圈

2021-10-07 17:24:57 字數 2347 閱讀 5930

for 變數 in 可迭代物件:

迴圈體語句

可迭代物件包括:序列(字串、元組、列表)、字典、迭代器物件(iterator)、生成器函式(generator)、檔案物件。

字典的遍歷

for x in d: 或 for x in d.keys(): #遍歷字典中所有鍵

for x in d.values(): #遍歷字典中所有值

for x in d.items(): 遍歷字典中所有鍵值對

巢狀迴圈

生成九九乘法表:

break語句和continue語句

break語句可用於while和for迴圈,用於結束整個迴圈。

當有巢狀語句時,break只能跳出最近一層迴圈。

continue語句用於結束本次迴圈而進行下一次迴圈。

迴圈巢狀時,continue也只能跳出最近一層迴圈。

empnum=0

salarysum=0

salary=

while true:

s=input('請輸入員工薪資(按q或q結束) ')

if s.upper()=='q':

print('錄入完成,退出')

break

if float(s)<0:

print('輸入有誤!')

continue

empnum+=1

salarysum+=float(s)

print('員工數量:'.format(empnum))

print('平均工資:'.format(salarysum/empnum))

迴圈後附帶的else語句

while、for迴圈可以附帶乙個else語句(可選),若迴圈沒有被break終止,則執行else語句。否則不執行。

迴圈**優化

三原則:

1.儘量減少迴圈內部不必要的運算;

2. 巢狀迴圈中,儘量減少內層迴圈的計算,盡量往外提;

3. 區域性變數查詢較快,盡量使用區域性變數

例:

for i in range(1000):

result=

for m in range(10000):

for i in range(1000):

result=

c=i*1000

for m in range(10000):

第二段**效率優於第一段,因為第一段**計算了1000萬次i*1000,而第二段只計算了1000次。

由此可見,應儘量減少迴圈中的運算,盡量提到迴圈外面。

其他優化方法:

1.連線多個字串,盡量使用join()而非+號;

2.列表進行元素插入和刪除,盡量在列表尾部進行;

使用zip()進行並行迭代

for a,b,c in zip(alist,blist,clist):

迴圈次數為最短的list的長度

推導式建立序列

列表推導式:

cells=[(row,col) for row in range(5) for col in range(5)]

print(cells)

字典推導式:和列表推導式相似,字典推導式也可加條件判斷,也可有多個for迴圈。

#統計文字中字元出現的個數

my_test='good night,miao'

d=print(d)

集合推導式:與列表推導式的語法相似。

s=生成器推導式(生成元組):

t=(x*2 for x in range(10) if x%2==1)生成的並非元組,而是生成器物件。

乙個生成器只能執行一次,第一次迭代可以遍歷得到資料,第二次迭代就得不到了,因為指標已指向末尾。

python基礎第五節 迴圈判斷

三 for迴圈 四 while迴圈 五 迴圈巢狀 六 作業 a input 請輸入賬號 可在括號內輸入提示 print type a a input返回的是字串型別 input返回的是str型別,強轉化成int型別才能與int型別進行比較 a int input 請輸入數字 當結果為true時,則執...

函式第五節

coding utf 8 1.定義乙個func name 該函式效果如下。assert func lilei lilei assert func hanmeimei hanmeimei assert func hanmeimei hanmeimei def title name if isinsta...

第五節 字典

字典的表現形式為大括號 dict key必須可hash,必須唯一且必須為不可改變的資料型別 value可存放任意多個值,可修改,可不唯一 無序且查詢速度快 鍵 值 鍵值對 1 dic.keys 返回乙個包含字典所有key的列表 2 dic.values 返回乙個包含字典所有value的列表 3 di...