python的循環語句只有二個 while for ,所有的語句都支持嵌套
while 語句:
形式一:
while 條件:
代碼塊1
形式二:
while 條件:
代碼塊1
else:
代碼塊2
死循環,只要條件永遠爲真
while True:
代碼塊
循環控制語句:
break : 當循環遇到break時,則終止整個循環
continue: 當循環遇到continue時 ,則終止當前循環開始下一次循環
pass : 佔位,什麼也不做
** 練習1: 求 1到100之間的和 **
ret = 0
i = 1
while i<=100:
ret = ret + i
#i = i + 1
i += 1
print(ret)
** 練習2: 有一個列表 L = [12,5,65,23,68,84,26],將奇偶數分開 **
方法一:
L = [12,5,65,23,68,84,26]
odd = []
even = []
flag = 0
while flag < len(L):
tmp = L[flag]
if tmp % 2 == 0:
even.append(tmp)
else:
odd.append(tmp)
flag += 1
print(odd)
print(even)
方法二:
L = [12,5,65,23,68,84,26]
odd = []
even = []
while L:
tmp = L.pop(0)
if tmp % 2 == 0:
even.append(tmp)
else:
odd.append(tmp)
print(odd)
print(even)
** 練習3 斐波那契數列(後一位是前兩位的和: 1 1 2 3 5 ....)輸出其中的某一位,比如指定第6位,則輸出數列中的第6個數。 **
count = 8
fib = [1,1]
while len(fib) < count:
new = fib[-1] + fib[-2]
fib.append(new)
print(fib)
print(fib[count-1])
** 練習4 學生信息字典 : studict = {'Tom':[18801116666,20],'Lily':[18801116688,22],'Harry':[18801117777,18]}
需求:用戶執行程序,輸出所有年齡大於19歲的“學生名-年齡-電話” **
studict = {'Tom':[18801116666,20],'Lily':[18801116688,22],'Harry':[18801117777,18]}
while studict:
tmp = studict.popitem()
age = tmp[1][1]
if age > 19:
print('{} {} {}'.format(tmp[0],*tmp[1]))
** 練習5 找出所有的水仙花數(一個三位數,個位數的三次方,十位數的三次方,百位數的三次方相加等於這個數本身) **
flag = 100
while flag < 1000:
bai = flag % 1000 // 100
shi = flag % 100 // 10
ge = flag % 10 // 1
tmp = bai ** 3 +shi ** 3 + ge ** 3
if tmp == flag:
print(tmp)
flag += 1
** 練習6 判斷一個數是不是質數(只能被1和它本身整除的數,又稱素數) **
num = 9
flag = 2
while flag < num:
if num % flag == 0:
print(False)
break
flag += 1
else:
print(True)
** 練習7 猜數遊戲,產生一個1-100之間的隨機數,讓用戶猜,如果數大了就說數太大了,如果數小了就說數小了,如果猜對了就說猜對了 **
產生隨機數的方法
from random import randint
randnum = randint(1,100)
參考:
from random import randint
randnum = randint(1,100)
while True:
guess = input('請猜一個1到100之間的整數: \n')
guess = guess.strip()
if not guess.isdigit():
print('{} 不合法,必須爲一個整數'.format(guess))
continue
guess = int(guess)
if guess > randnum:
print('{} 太大了'.format(guess))
elif guess < randnum:
print('{} 太小了'.format(guess))
else:
print('{} 猜對了'.format(guess))
break
** 練習8 猜數遊戲,產生一個1-100之間的隨機數,讓用戶猜,如果數大了就說數太大了,如果數小了就說數小了,如果猜對了就說猜對了。
統計用戶猜了多少次才猜對的。如果用戶猜對了,問一下用戶是否要繼續 n 爲退出,其它任意鍵爲繼續 **