1. 程式人生 > >python-for迴圈語句、range()函式

python-for迴圈語句、range()函式

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後再登陸')

在這裡插入圖片描述
在這裡插入圖片描述