迴圈作業提高

2021-09-24 23:06:41 字數 4001 閱讀 8206

1.控制台輸入年齡,根據年齡輸出不同的提示(例如:老年人,青壯年,成年人,未成年,兒童)

age = int(input('請輸入年齡'))

if age < 18:

if age <= 10:

print('兒童')

else:

print('未成年')

elif age < 60:

if age < 40:

print('青壯年')

else:

print('中年人')

else:

print('老年人')

2.計算5的階乘 5!的結果是

分析:5! = 12345

print('**********====第二題***************==')

sum1 = 1

for num in range(1, 6):

sum1 *= num

print('5!是:', sum1)

3.求1+2!+3!+...+20!的和 1.程式分析:此程式只是把累加變成了累乘。

print('**********====第3題***************==')

sum1 = 0   # 總和

for num in range(1, 21):

sum2 = 1 # 每個單獨的數的階乘

for x in range(1, num+1):

sum2 *= x

sum1 += sum2

print('1+2!+3!+...+20!結果是:', sum1)

4.計算 1+1/2!+1/3!+1/4!+...1/20!=?

print('**********====第4題***************==')

sum1 = 0   # 總和

for num in range(1, 21):

sum2 = 1 # 每個單獨的數的階乘

for x in range(1, num+1):

sum2 *= x

sum1 += 1/sum2

print('1+1/2!+1/3!+1/4!+...1/20! == ', sum1)

5.迴圈輸入大於0的數字進行累加,直到輸入的數字為0,就結束迴圈,並最後輸出累加的結果。

print('**********====第5題***************==')

while true:

num = input('請輸入數字:')

if num == '0':

break

6.求s=a+aa+aaa+aaaa+aa...a的值,其中a是乙個數字。例如2+22+222+2222+22222(此時共有5個數相加),幾個數相加用鍵盤控制。

程式分析:關鍵是計算出每一項的值。

print('**********====第6題***************==')

n = int(input('次數:'))

a = 2 # 單個求和數字

num = a

sum1 = 0 # 和

for _ in range(n):

sum1 += num

print(num)

num = num*10 + a

print('和:', sum1)

"""2

2*10 + 2 == 22

22*10 + 2 = 222

222*10+2 = 2222

"""

8.控制台輸出三角形

"""a.

n = 5時 n = 4

*****               ****

**** ***

*** **

** *

*

b.根據n的值的不同,輸出相應的形狀(n為奇數)

n = 5 n = 7

* * 3個空格1個*

*** *** 2個空格3個*

***** ***** 1個空格5個*

******* 0個空格7個*

規律: 的數量是從1開始,每次加2到n為止; 每一行前面的空格的數量是:(n - *的數量)//2

print('**********====第8.a題***************==')

n = int(input('n:'))

for num in range(n, 0, -1):

print('*'*num)

print('**********====第8.b題***************==')

n = int(input('n:'))

for star_count in range(1, n+1, 2):

space_count = (n - star_count) // 2

print(space_count*' ', end='')

print(star_count*'*')

9.輸出9*9口訣。 1.程式分析:分行與列考慮,共9行9列,i控制行,j控制列。

"""1x1=1

1x2=2 2x2=4

1x3=3 2x3=6 3x3=9

1x4=4 2x4=8

1x5=5 2x5=10

1x6=6 2x6=12

1x7=7

1x8=8

1x9=9

for i in range(1, 10):

for j in range(1, i+1):

print('%dx%d=%d' % (j, i, j*i), end=' ')

print()

10.這是經典的"百馬百擔"問題,有一百匹馬,馱一百擔貨,大馬馱3擔,中馬馱2擔,兩隻小馬馱1擔,問有大,中,小馬各幾匹?

for big in range(1, 101//3):

for middle in range(1, 101//2):

for small in range(2, 101, 2):

if big+middle+small == 100 and big*3 + middle*2 + small/2 == 100:

print('大馬:%d匹, 中馬:%d匹,小馬:%d匹' % (big, middle, small))

11.我國古代數學家張邱建在《算經》**了一道「百錢買百雞」的問題,題意是這樣的:

5文錢可以買乙隻公雞,3文錢可以買乙隻母雞,1文錢可以買3只雛雞。

現在用100文錢買100隻雞,那麼各有公雞、母雞、雛雞多少只?請編寫程式實現。

for gong in range(1, 101//5):

for mu in range(1, 101//3):

for chu in range(3, 101, 3):

if 5 * gong + 3 * mu + chu/3 == 100 and gong + mu + chu == 100:

print('公雞:%d,母雞:%d,雛雞:%d' % (gong, mu, chu))

12.小明單位發了100元的購物卡,小明到超市買三類洗化用品,洗髮水(15元),香皂(2元),牙刷(5元)。

要把100元整好花掉,可如有哪些購買結合?

for xi in range(0, 100//15):

for xiang in range(0, 100//2):

for ya in range(0, 100//5):

if xi*15 + xiang*2 + ya*5 == 100:

print('洗髮水:%d, 香皂:%d,牙刷:%d' % (xi, xiang, ya))

迴圈提高作業

1.控制台輸入年齡,根據年齡輸出不同的提示 例如 老年人,青壯年,成年人,未成年,兒童 age int input 請輸入年齡 if age 18 if age 10 print 兒童 else print 未成年 elif age 60 if age 40 print 青壯年 else print...

for 迴圈 作業

for迴圈 語法如下 for 變數名 in 可迭代物件 此時只需知道可迭代物件可以是字串 列表 字典,我們之後會專門講解可迭代物件 一 二 例1for item in a b c print item 執行結果ab c 補充!如果需要遍歷的在同一行,可在後面加,end 參照例1來介紹for迴圈的執行...

如何提高 for 迴圈效率?

一般是三個方法 1 預分配 即在for迴圈前,將輸出結果矩陣預先分配。例如 a 0 0 0 for i 1 3 a i i end這樣在 for 迴圈中,就不會在記憶體中,每次對變數a進行再分配了。2 向量化 matlab 中,矩陣運算會比 for 迴圈效率更高,例如對乙個矩陣的所有元素求 sin ...