python-for迴圈語句、range()函式
阿新 • • 發佈:2018-11-21
1.for迴圈
2.range
1.for迴圈
for 迴圈的語法:
for 變數 in range(10): #迴圈0-9次
迴圈需要執行的程式碼
else:
迴圈結束時需要執行的程式碼
2.range()函式:
range(stop): 0~stop-1
range(start,stop):start~stop-1
range(start,stop,step):start~stop-1 step(步長)
在python2中操作:
In [1]: range(5) Out[1]: [0, 1, 2, 3, 4] #range(5)相當於輸出0-4 In [2]: range(7) Out[2]: [0, 1, 2, 3, 4, 5, 6] In [4]: range(1,10) #輸出1-9 Out[4]: [1, 2, 3, 4, 5, 6, 7, 8, 9]
range()在python3中返回與python2返回值不同,python2將返回的所有的數全存在記憶體中,所以python3更節省記憶體。
python2:
-range(1,5):即刻生成資料,消耗時間並且佔用記憶體
-xrange(1,5):先生成一個xrange物件,使用值的時候才生成資料,才佔用記憶體
python3:
-range(1,5):相當於python2中的xrange,節省記憶體
#拿出1~10之間的所有奇數
In [6]: range(1,10,2) Out[6]: [1, 3, 5, 7, 9] In [7]: range(1,11,2) Out[7]: [1, 3, 5, 7, 9]
#拿出1~10之間的所有偶數
In [8]: range(2,11,2)
Out[8]: [2, 4, 6, 8, 10]
#1+2+3+…+100=
sum = 0
for i in range(1,101): #i從1到100,1.2.3..100
sum = sum + i #sum=1+2+3+..+100
print(sum)
練習1:
需求1:求1~100之間的所有偶數之和
需求2:求1~100之間的所有奇數之和
需求3:使用者輸入一個整形數,求該數的階乘;3!=321
需求1.
sum = 0 for i in range(2,101,2): sum = sum + i print('偶數之和為:%d' %(sum))
需求2.
sum = 0
for i in range(1,101,2):
sum = sum + i
print('奇數之和為:%d' %(sum))
需求3.
num = int(input('請輸入一個整數:'))
res = 1 #階乘從1開始
for i in range(1,num+1): #迴圈從1到num結束,i為計數器
res = res * i #每次迴圈相乘,結果儲存在res中
print(res) #輸出階乘結果
練習2.
使用者登陸程式需求:
1.輸入使用者名稱和密碼
2.判斷使用者名稱和密碼是否正確(name = ‘root’,passwd=‘westos’)
3.為了防止暴力破解,登陸僅有三次機會,如果超過三次,程式就報錯
for i in range(3): #為了讓登陸程式碼迴圈三次
name = input('使用者名稱:')
passwd = input('密碼:')
if name == 'root' and passwd == 'westos':
print('登陸成功')
break #退出迴圈
else:
print('登陸失敗')
print('您還剩餘%d次機會' %(2-i))
else:
print('登陸次數超過三次,請等待100s後再登陸')