1. 程式人生 > >python學習 lesson4迴圈語句:for迴圈

python學習 lesson4迴圈語句:for迴圈

一、for迴圈的基本結構

for迴圈可以遍歷任何序列的專案,如一個列表或者一個字串。

for迴圈的結構

for iter_var in iterable:
	suite_to_repeat

註解:每次迴圈, iter_var 迭代變數被設定為可迭代物件(序列, 迭代器, 或者是其他支援迭代的對 象)的當前元素, 提供給 suite_to_repeat 語句塊使用.

二、range函式

如果你需要遍歷數字序列,可以使用內建range()函式。它會生成數列。

range(start,end,step=1):顧頭不顧尾
range(10):預設step=1,start=0,生成可迭代物件,包含[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
range(1,10):指定start=1,end=10,預設step=1,生成可迭代物件,包含[1, 2, 3, 4, 5, 6, 7, 8, 9]
range(1,10,2):指定start=1,end=10,step=2,生成可迭代物件,包含[1, 3, 5, 7, 9]

eg:輸出0~100內所有偶數之和
sum = 0				##定義變數
for i in range(0, 101, 2):	##將i的值遍歷為0~100的所有偶數
    sum = sum + i		##所有數相加
print (sum)

輸出結果:
在這裡插入圖片描述

三、for的運用:break&continue

for迴圈結合
輸出

登陸系統:
for i in range(3):				##三次輸出機會
    name=input('please input username:')	##輸入使用者名稱		
    passwd=input('please input passwd:')	##輸入密碼
    if (name=='westos')and(passwd=='123321'): 	##如果使用者密碼符合
        print('success')			
        break					##退出迴圈
    else:
        print('your usrname or passwd wrong!!! you have %d chance' %(2-i))	##機會剩餘次數

else:
    print('you have not chance,please wait 100s') ##機會用完則輸出

break&continue

break: 跳出整個迴圈。
continue: 跳出此次迴圈,continue後的程式碼不執行,繼續下次迴圈。
exit():直接跳出程式。

小測試:

搭建shell環境:

import os					###import os 引用系統函式
for i in range(1000):					
    cmd=input('[[email protected] test]$' )
    if cmd:
        if cmd=='exit':
            print('bye')
            break
        else:
            os.system(cmd)			###執行cmd命令
    else:
        continue	
        print('hello') 				###不會執行

在這裡插入圖片描述

最大公約數和最小公倍數:
要求:
輸入兩個數值:
輸出兩個數的最大公約數和最小公倍數
最想公倍數:num1num2/最大公約數
方法1:
num1 = int(input(‘輸入數字1:’))
num2 = int(input(‘輸入數字2:’))
if num1 > num2:
for i in range(1, num2 + 1):
if num2 % i == 0 and num1 % i == 0:
aa = i
else:
for i in range(1, num1 + 1):
if num2 % i == 0 and num1 % i == 0:
aa = i
print(‘最大公約數:%d’ % (aa))
bb = (num1 * num2) / i
print(‘最小公倍數:%d’ % (bb))
方法2:
num1 = int(input(‘輸入數字1:’))
num2 = int(input(‘輸入數字2:’))
#比較num1和num2誰更小。
min_num = min(num1,num2)
for i in range(1, min_num + 1):
if num2 % i == 0 and num1 % i == 0:
aa = i
bb = (num1
num2)/aa
print(‘最大公倍數為:%d’ %(aa))
print(‘最小公約數為:%d’ %(bb))
擴充:min() 表示輸出最小值