1. 程式人生 > 其它 >python-迴圈語句-習題及答案-for-while

python-迴圈語句-習題及答案-for-while

技術標籤:基礎練習題及答案pythonc++

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)