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...