python-迴圈語句-習題及答案-for-while
阿新 • • 發佈:2021-01-08
for 變數 in range(起始,終止,步長):
迴圈體變數 = 起始
while 終止條件(bool):
迴圈體
步長break continue
1. 盈盈為了考驗令狐沖奪冠的決心,要他說一百遍“我能行!”
# for i in range(0,100,1):
# print("我能行")
2.
本金10000元存入銀行,年利率是千分之三,每過1年,將本金和利息相加作為新的本金。計算5年內,每年獲得的本金是多少?
# for year in range(1,6,1):
# m = 10000*(1+0.003)**year
# print(m)
3.
計算出1—100
之間所有能被3整除的整數的和?
# sum = 0
# for i in range(1,101,1):
# if i%3==0:
# sum += i
# print(sum)
# sum = 0
# for i in range(3,101,3):
# sum += i
# print(sum)
4.
計算1000以內所有不能被7整除的整數之和?
# sum = 0
# for i in range(1,1001,1):
# if i%7!=0:
# sum += i
# print(sum)
# sum = 0
# for i in range(7,1001,7):
# sum += i
# print(500500 - sum)
5.
求10到20的累加和
# sum = 0
# for i in range(10,21,1):
# sum+=i
# print(sum)
#sum = 0
# a = 10
# while a<=20:
# sum += a
# a += 1
# print(a,sum)
6.找出一個數的所有因子數
# a = int(input("請輸入一個數:"))
# for i in range(1,a//2+1):
# if a%i == 0:
# print(i)
7.
輸入一個數,判斷這個數是否是素數;
# a = int(input("請輸入一個數:"))
# flag = False #旗標法
# for i in range(2,a//2+1):
# if a%i == 0:
# flag = True
# #檢驗flag的值
# if flag:
# print("不是素數")
# else:
# print("是素數")
8
定義一個正整數如:1205
統計它的各位數字中零的個數,並求各位數字中的最大者。
# a = int(input("請輸入一個數:"))
# count = 0
# for i in range(len(str(a))):
# if a%10==0:
# count += 1
# a //= 10
# print(count)
# print(max(str(a)))
9
有1020個西瓜,第一天賣掉總數的一半後又多賣出兩個,以後每天賣剩下的一半多兩個,問幾天以後能賣完
# a = 1020
# for day in range(1,1000,1):
# a = a//2-2
# if a<=0:
# print(day)
# break
# days = 0
# a = 1020
# while a>0:
# days += 1
# a = a//2-2
# print(days)
10
猴子吃桃問題: 猴子第一天摘下若干個桃子,當即吃了一半,還不過癮,又多吃了一個,第二天早上又將剩下的桃子吃了一半,又多吃一個,
以後每天都吃了前一天剩下的一半零一個。到第10天早上想再吃時,見只剩下一個桃子。求第一天共摘了多少個?
# day_count = 1
# for day in range(9,0,-1):
# day_count = (day_count+1)*2
# print(day_count)
11
判斷一個數是否是完全數(完數指的是一個數的所有因子數的和等於這個數本身,例如
# 6 = 1 + 2 + 3, 即6就是完全數)
# sum = 0
# a = int(input("請輸入一個數:"))
# for i in range(1,a//2+1):
# if a%i == 0:
# sum += i
# if sum==a:
# print("是")
# else:
# print("不是")
1.
輸出圖型
*
**
***
****
# for i in range(0,4,1): #行
# for i in range(0,i+1,1): #列
# print("*",end="")
# print()
2
for i in range(0,5,1): #行
for k in range(0,4-i,1):
print(" ",end="")
for j in range(0,2*i+1,1): #列
print("*",end="")
print()
for i in range(0,5,1): #行
for k in range(0,i+1,1):
print(" ",end="")
for j in range(0,9-2*i,1): #列
print("*",end="")
print()
3
*
**
***
****
*****
******
*******
******
*****
****
***
**
*
# for i in range(-6,7,1):
# for j in range(0,7-abs(i)):
# print("*",end="")
# print()
4.
編寫一個九九乘法法
# for i in range(1,10,1):
# for j in range(1,i+1,1):
# print(j,"*",i,"=",i*j,end=" ")
# print()
5
百錢買百雞,有100元錢,要去買100只雞,公雞5元一隻,母雞3元一隻,小雞1元3只,問公,母,小雞各買多少隻。
提示:
a + b + c = 100 只
5 a + 3b + 1 / 3c = 100 錢
# for m in range(0,20,1):
# for n in range(0,33,1):
# for k in range(0,100,3):
# if m+n+k==100 and m*5+n*3+k//3==100:
# print(m,n,k)
# for m in range(0,20,1):
# for n in range(0,33,1):
# if (100-m-n)%3==0 and m*5+n*3+(100-m-n)//3==100:
# print(m,n,(100-m-n))
6
星型圖案
*
***
*****
*******
*********
7
把上圖形再倒過來,合成一個菱形圖案
# for i in range(-4,5,1):
# for j in range(abs(i)):
# print(" ",end="")
# for k in range(9-2*abs(i)):
# print("*",end="")
# print()
8
打印出一個空菱形圖案
# for i in range(-4,5,1):
# for j in range(abs(i)):
# print(" ",end="")
# for k in range(9-2*abs(i)):
# if k==0 or k==9-2*abs(i)-1:
# print("*",end="")
# else:
# print(" ",end="")
# print()
9.
求300 - 400
之間的素數
# for i in range(300,401,1):
# flag = False
# for j in range(2,i,1):
# if i%j==0:
# flag = True
# break
# if not flag:
# print(i)
10
輸出一個平行四邊形的圖案
# for i in range(0,4,1):
# for j in range(0,3-i):
# print(" ",end="")
# for k in range(0,10):
# print("*",end="")
# print()
11
用while做
雞兔同籠。雞兔一共有50只,腳一共有160只,問雞和兔各多少隻?要求雞兔至少一樣一隻。
12.
計算2 / 1 + 3 / 2 + 4 / 3 +…+(n + 1) / n,寫出演算法的程式.
# sum = 0
# for i in range(1,21,1):
# sum += (i+1)/i
# print(sum)
14.2000年我國人口為13億,如果人口每年的自然增長率為7%,那麼多少年 後我國人口將達到15億?設計一個演算法的程式
# year = 0
# cp = 13 #人口總數
# while cp<15:
# cp = cp*(1+0.03)
# year += 1
# print(2000+year)
15
用while做 雞兔同籠。雞兔一共有50只,腳一共有160只,問雞和兔各多少隻?要求雞兔至少一樣一隻。
# m = 1 #雞
# while not m*2+(50-m)*4==160:
# m += 1
# print(m,50-m)
# m = 1
# while m<50:
# if m*2+(50-m)*4==160:
# print(m,50-m)
# m += 1
16.
迴圈錄入python課的學生成績,統計分數大於等於 80分的學生比例(使用continue)
# count = 0
# for i in range(10):
# score = int(input("請輸入成績"))
# if score<80:
# continue
# count += 1
# print(count)
17.
迴圈錄入某學生5門課的成績並計算平均分,如果某分數錄入為負,停止錄入並提示錄入錯誤(使用break)
# sum = 0
# flag = False
# for i in range(5):
# score = int(input("請輸入成績"))
# if score<0:
# flag = True
# break
# sum += score
# if not flag:
# print(sum/5)
# else:
# print("輸入錯誤")
18.給出50個數,1,2,4,7,11,„,其規律是:第1個數是1,第2個數比第1個數大1,第3個數比第2個數大2,第4個數比第3個數大3,„,以此類推. 要求計算這50個數的和.
# sum = 1
# a = 1
# c = 1
# while c<50:
# a = a+c
# sum += a
# c += 1
#
# print(sum)