Python初學者筆記:while語句練習

練習1

求100以內所有奇數之和

a=0
b=0
while a < 100 :
    a+=1
    if a % 2 != 0 :	#判斷,a不能是偶數
        b += a
print('1加100的奇數和的等於',b)

執行效果

1100的奇數和的等於 2500

練習2

獲取100以內所有的奇數

a=1
while a < 100 :
    print(a)
    a+=2

執行效果有點長,就不列出了。

練習3

求100以內所有7的倍數之和,以及個數

a=7		$根據要求創建三個變量,分別用於存放倍數,倍數之和與個數
b=0
c=0
while a < 100 :
    print(a)	$列出7的倍數
    a+=7		$每次列出後加7
    b+=a		$b爲7倍數之和,每次加上a的值
    c+=1		$一百以內7的個數,每次循環後加1,相當於一個計數器
print('總和爲',b,'總數爲',c)

執行效果:

7
14
21
28
35
42
49
56
63
70
77
84
91
98
總和爲 833 總數爲 14

練習4

水仙花數是指一個n位數(n>=3),它的每個位上的數字的n次冪之和等於他本身。求1000以內所有的水仙花數。

i = 100	$列出3位數最小數
while i < 1000:	$從i開始,獲取到所有小於1000的數
    a = i // 100	$求出水仙花數的百位數
    b = (i - a*100) // 10	$求出水仙花數的十位數
    c = i % 10	$求出水仙花數的個位數
    if a**3 + b**3 + c**3 == i :	$將百,十,個位上的數n次冪之和等於他本身
        print(i)	$打印水仙花數
    i += 1	$每次執行加1

執行效果:

153
370
371
407

練習5

獲取用戶輸入的任意數,判斷其是否是質數。
質數:質數是隻能被1和它本身整數的數,1不是質數也不是合數。

num = int(input('輸入一個任意的大於1的整數:'))
if num > 1 :	$質數必須大於1,輸入的數也必須大於1,不然報錯。
    i=2			$從2開始,獲取到所有小於num的數
    flag=True	$創建一個變量,用來記錄num是否是質數,默認認爲num是質數
    while i < num:	$i獲得的數必須小於用戶輸入的數
        if num % i == 0:	$判斷能否被i整除,如果num能被i整除,則說明num一定不是質數
            flag=False		$一旦進入判斷,則證明num不是質數,則將flag改爲False
        i+=1	$每次執行後加1
    if flag:
        print(num,'是質數')	$爲True表示不能被num中i的值整數,顧爲質數
    else :
        print(num,'不是質數') $否則就是爲False,能被num中i的值整數,顧不是質數。
else :
    print('輸入錯誤')

執行效果:

輸入一個任意的大於1的整數:1
輸入錯誤
輸入一個任意的大於1的整數:10
10 不是質數
輸入一個任意的大於1的整數:11
11 是質數
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章