range 循环
取余筛选
题目 1
输出 100 以内能被 3 整除的数:
for i in ①: if ②: print(i)答案
① range(101) ② i%3==0
题目 2
找出 100 以内能同时被 4 和 7 整除的数:
for i in range(1, 100): if i % 4 == 0 ① i % 7 == 0: ②("可以同时被4和7整除的数是", i)答案
① and ② print
题目 3
找出 100 以内所有能被 5 和 7 整除的数:
for x ① range(1, 100): if x % 5 == 0 ② x % 7 == 0: print(x)答案
① in ② and
题目 4
输出 100 以内能被 7 整除但不能被 6 整除的整数:
for i in range(101): ① i % 7 == 0 and i % 6 ② 0: print(i, end=" ")答案
① if ② !=
题目 5
输出 100 以内能被 9 整除但不能被 7 整除的整数:
for i in ①(101): if i % 9 == 0 and i % 7 ② 0: print(i, end=" ")答案
① range ② !=
题目 6
以下是计算 20 以内能被 3 整除的数的乘积:
s=1for i ① range(1,21): if i②3= =0: s=s* iprint(s)答案
① in ② %(运行结果为 524880,即 3×6×9×12×15×18)
题目 7
输入 3 个正整数,判断是否能同时被 23 和 37 整除:
for i in range(3): m=①(input("任意输入一个正整数")) if m%23==0 ② m%37==0: print("该数可以被23和37整除",m) else: print("输入下一个数")答案
① int ② and
迭代求和
题目 8
计算 1+2+3+4+…+10,答案 55:
s = ①for i in range(1, ②): s = s + ③print(s)答案
① 0 ② 11 ③ i
题目 9
计算并输出 1+5+9+13+17+21 的和,答案 66:
s = 0for i in range(1, 22, ①): s = s + ②print(s)答案
① 4 ② i
题目 10
求 20 以内所有奇数的和,答案 100:
s = 0for i ① range(1, 20, ②): s = s + iprint(s)答案
① in ② 2
题目 11
300 以内(包括 300)所有能被 3 整除的数的和,答案 15150:
s = ①for i in range(3, ②, 3): s = s + iprint(s)答案
① 0 ② 301
题目 12
计算 3+7+11+15+…+47:
s = 0for i in range(3, 48, ①): s = s + ②print(s)答案
① 4 ② i
题目 13
计算 1+4+7+…+19:
s = 0for i in ①(1, 20, ②): s = s + iprint(s)答案
① range ② 3
题目 14
求 20 以内(包括 20)所有偶数的和:
s = 0for a ① range(0, 21, 2): s = s + a②(s)答案
① in ② print
题目 15
求 20 以内(包括 20)所有偶数的和(另一种写法):
sum = 0for a in ①: ②print(sum)答案
① range(2,21,2) ② sum=sum+a
题目 16
计算 3+6+9+…+300 之和:
s = 0for i in range(1, ①): s = s + 3 * ②print(s)答案
① 101 ② i
题目 17
计算 5+10+15+…+500:
s = 0for i in range(1, ①): s = s + 5 * ②print(s)答案
① 101 ② i
题目 18
计算 32+62+92+…+482:
s = 0for i ① range(1, 17): s = s + (30 * i) ② 2print(s)答案
① in ② +
题目 19
计算 1+1/2+1/3+1/4+…+1/10 的和:
s = ①for i in ②(1, 11): s = s + 1 / i③(s)答案
① 0 ② range ③ print
题目 20
计算 1²+2²+3²+…+100² 的值,答案 338350:
s = ①for i in range(1, 101): s = s + i ② iprint(s)答案
① 0 ② *
题目 21
前 n 个自然数的和:
n = int(input("请输入n的值:"))s = 0for i in range(1, ①, 1): ②print(s)答案
① n+1 ② s=s+i
题目 22
求 4+10+16+22+28+34+40:
s=①for i in range(1,②): s=s+(4+i*6)print(s)答案
① 4 ② 7(运行结果为 154)
题目 23
求 10 以内数的平方和:
s=0for n ① range(1,11): s=s+n*nprint("s=", ② )答案
① in ② s(运行结果为 385)
题目 24
求 50 内所有能被 9 整除的数之和:
s=①for i in range(9,51,9): s=s+②print("和为:",s)答案
① 0 ② i
迭代求积
题目 25
计算 9!:
p = 1for i in ①: ②print("9!=", p)答案
① range(1,10) ② p=p*i
题目 26
计算 2×3×4×…×10 的积,答案 3628800:
s = ①for i in range(2, 11): s = s * ②print(s)答案
① 1 ② i
题目 27
计算 1×3×5×…×11:
s = 1for i in range(1, 12, ①): s = s * ②print(s)答案
① 2 ② i
题目 28
计算 1×3×5×7×…×19:
s = ①for i in range(3, 20, 2): s = s * ②print(s)答案
① 1 ② i
题目 29
输出 20(含 20)以内所有能被 5 整除的数的积:
s=①for i in range(5,21,5): s=s ② iprint(s)答案
① 1 ② *(运行结果为 15000)
综合
题目 30
300 以内所有被 3 整除的数的和:
s = 0for i in range(①): if i ② 3 == 0: s = s + iprint(s)答案
① 301 ② %
题目 31
找出 50 以内所有能被 3 和 5 整除的数的个数:
n = 0for x ① range(50): if x % 3 == 0 ② x % 5 == 0: n = n + 1print(n)答案
① in ② and
题目 32
计算 20 以内(包括 20)所有奇数的和以及所有偶数的和,答案 100, 110:
s1 = 0s2 = 0for i in ①(1, ②): if i ③ 2 == 1: s1 = s1 + i # 奇数和 else: s2 = s2 + i # 偶数和print("奇数和为:", s1)print("偶数和为:", s2)答案
① range ② 21 ③ %
题目 33
求 1-2+3-4+5-…+99-100:
s = 0for i in range(1, 101): if i % 2 == 0: s = ① else: s = ②print("s=", s)答案
① s-i ② s+i
题目 34
计算 1-2+3-4+5-6+7-8+9-10+11 的结果:
s=0for i in range(12): if i%2①1: s=s+i ②: s=s-iprint(s)答案
① == ② else(运行结果为 6)
题目 35
根据输入的学生总数和女生人数,输出男女生比值:
s=int(input("请输入学生总数:"))g=①(input("请输入女生人数:"))m=② #计算男生人数a=m/gprint("男女生比值为:",a )答案
① int ② s-g
题目 36
某位老师编写程序,连续输入 3 个文件名,判断是否为 WORD 文档:
for i in ①(3): m=input("请输入一个文件名") if m=="doc": print("该文件为WORD文档") elif m=="docx": print("该文件为WORD文档") ②: print("继续输入下一个文件")答案
① range ② else
题目 37
在学校举办的“庆五一”绘画大赛中有三位评委为作品打分,当平均得分在 85 分以上就获得优秀作品奖:
s=0for i in range(3): t=float(input("评委打分为:")) s+=①s=s/3② s>85: print("作品被选为优秀参赛作品")答案
① t ② if
题目 38
为了了解中学生体重指数情况,随机选择 20 个学生测量身高和体重,计算 BMI 指数:
for i in ①(20): s=float(input("输入体重")) #体重单位为公斤 t=float(input("输入身高")) #身高单位为米 p=s/(t**2) print("该学生的体重指数是",②)答案
① range ② p
嵌套循环
题目 39
已知五位数密码 35**9,能被 9 整除,找出符合要求的密码:
for i ① range(10): for j in range(10): num = 35009 + 100 * i + 10 * j if num % 9 ② 0: print("可能的密码是:", num)答案
① in ② ==
题目 40
已知五位数密码 23**9,能被 9 整除,找出符合要求的密码:
for i in range(0, ①): for j in range(0, ②): s = 2 * 10000 + 3 * 1000 + i * 100 + j * 10 + 9 if ③ % 9 == 0: print(s)答案
① 10 ② 10 ③ s
题目 41
有 5 元、2 元、1 元钱共计 50 张(每种面额至少一张),总金额为 100 元,列出所有组合方案:
for x in ①(1, 21): for y in range(1, 51): for z in range(1, 51): ② 5 * x + 2 * y + z == 100 and x + y + z == 50: ③(x, y, z)答案
① range ② if ③ print
题目 42
用 100 钱买 100 只鸡(公鸡 5 钱/只、母鸡 3 钱/只、小鸡 1 钱 3 只),列出所有方案:
for i in range(1, 20): for j in range(1, 34): for w in range(1, 100): if ① and ②: print("公鸡、母鸡、小鸡的数量分别是:", i, j, w)答案
① i+j+w==100 ② 5*i+3*j+w/3==100
题目 43
用 100 钱买 100 只鸡(另一种解法):
for i in range(1, 21): for j in range(1, 34): if i * 5 + j * 3 + ① == 100 and (100 - i - j) ② 3 == 0: print("公鸡、母鸡、小鸡的数量分别是:", i, j, ③)答案
① (100-i-j)/3 ② % ③ 100-i-j
题目 44
用 * 打印一个 5 行的直角三角形:
for i in range(1, 6): ① j in range(1, i + 1): print("②", end="") print()答案
① for ② *
题目 45
小明带了 30 元买文具(铅笔 0.5 元/根,笔记本 3.5 元/本),求有几种买法:
total = 30for m in range(int(total / 0.5) + 1): for n in range(int(total / 3.5) + 1): ① 0.5 * m + 3.5 * n == total: print("能买铅笔:", m, "笔记本:", ②)答案
① if ② n
图案输出
题目 46
用 * 打印一个 6 行的直角三角形:
for i in ①(1, ②): print(③ * "*")'''输出如下图案。*********************'''答案
① range ② 7 ③ i
题目 47
打印一个 4 行的矩形图案:
for i in range(①): print("②" * 4)'''输出如下图案。****************'''答案
① 4 ② *
题目 48
打印一个 5 行的平行四边形图案:
for i in ①(5): print(" " * i + "②" * 5)'''输出如下图案。***** **** *** ** *'''答案
① range ② *
题目 49
打印一个 5 行的菱形图案(上半部分):
for i in range(1, 6): print(" " * (5 - i) + "①" * (② * i - 1))'''输出如下图案。 * *** ***** ****************'''答案
① * ② 2
题目 50
打印一个 5 行的倒三角形图案:
for i in range(5, 0, -1): print("①" * ②)'''输出如下图案。***************'''答案
① * ② i
While 循环
累计求和
题目 51
计算 1+2+…+100,答案 5050:
s = 0a = 0while a ① 100: ② = s + a a = a + ③print(s)答案
① <= ② s ③ 1
题目 52
计算 100 以内整数的和:
sum = 0i = 1while i <= 100: sum = ① i = ②print(sum)答案
① sum+i ② i+1
题目 53
计算 50 以内所有偶数的和:
s = 0i = 0① i < 50: s = s + i i = i + 2②(s)答案
① while ② print
题目 54
计算 s = 1+6+11+…+101:
s = 0k = 1while k <= 101: s = ① k = ②print(s)答案
① s+k ② k+5
题目 55
计算 30 以内(包括 30)所有偶数的和,答案 240:
s = 0a = 0while a ① 30: s = s + a a = a + 2print("求和为:", ②)答案
① <= ② s
题目 56
输出 20 以内所有奇数的和:
n = 1s = 0① n <= 20: if n % 2 == 1: s = s + n n = n + ②print(s)答案
① while ② 1
题目 57
妈妈把小明的压岁钱 5000 元存入银行,利率 3%,计算需要多少年达到 8000 元:
s = 5000years = 0while s ① 8000: ② = s + s * 0.03 years = years + 1print(years, "年后达到8000元")答案
① < ② s
题目 58
共有 150 吨燃料,一天用掉 2.6 吨,问最多可用几天:
m = 150n = 2.6t = 0while ① > 2.6: m = m - n t += ②print("最多可以用", t, "天")答案
① m ② 1
题目 59
天然气库存 150 亿 m³,每天消耗 2.6 亿 m³,最多可以用多久:
m = 150s = 2.6t = 0while ① >= 0: m = m - s t += ②print("可以使用", t, "天")答案
① m-s ② 1
题目 60
猜体重游戏(只有 3 次机会),体重为 65 公斤:
weight = 65time = 0while time < 3: cai = int(①("我的体重是:")) if cai ② weight: print("恭喜你猜对了") break else: print("请再猜一次") time = time + 1答案
① input ② ==
题目 61
暑假读书:第 1 天读 1 页,第 2 天读 2 页……第 60 天读 60 页,共读多少页:
total=0i=1① i<61: total=total+② i+=1print("整个暑假可以读书:",total)答案
① while ② i(运行结果为 1830)
题目 62
记英语单词:今天记 1 个,每天比前一天多记 1 个,一年后词汇量增加多少:
s=0i=1① i<=365: s=s+② i=i+1print("词汇量增加",s)答案
① while ② i(运行结果为 66795)
基础
题目 63
用 while 循环输出 1 到 10:
i = 1while i ① 10: print(i) i = i + ②答案
① <= ② 1
题目 64
用 while 循环输出 10 到 1(倒序):
i = ①while i >= 1: print(i) i = i - ②答案
① 10 ② 1
题目 65
用 while 循环输出所有两位数中个位与十位之和为 10 的数:
i = 10while i <= ①: sw = i // 10 gw = i % 10 if sw + gw == ②: print(i) i = i + 1答案
① 99 ② 10
题目 66
从键盘输入若干个正整数,输入 -1 时结束,统计输入了多少个正整数:
cnt = 0n = int(input("请输入一个正整数(输入-1结束):"))while n ① -1: cnt = cnt + 1 n = int(input("请输入一个正整数(输入-1结束):"))print("输入了", ②, "个正整数")答案
① != ② cnt
题目 67
输入密码,最多输入 3 次,密码为“1234”时结束:
cnt = 0mima = input("请输入密码:")while mima != "1234" ① cnt < 2: cnt = cnt + 1 mima = input("密码错误,请重新输入:")if mima == "1234": print("密码正确")②: print("3次输入错误,账户锁定")答案
① and ② else
题目 68
输入一个正整数,判断它是几位数:
n = int(input("请输入一个正整数:"))cnt = 0while n > 0: n = n ① 10 cnt = cnt + 1print("这是一个", ②, "位数")答案
① // ② cnt
题目 69
计算 n 的阶乘(n 由键盘输入):
n = int(input("请输入n:"))i = 1s = ①while i <= n: s = s * i i = i + 1print(n, "的阶乘为", ②)答案
① 1 ② s
题目 70
从键盘输入一个正整数,判断是否为回文数:
n = int(input("请输入一个正整数:"))t = ns = 0while t > 0: s = s * 10 + t % 10 t = t ① 10if s == ②: print(n, "是回文数")else: print(n, "不是回文数")答案
① // ② n
增长/衰减问题
题目 71
14 个小学生搬 38 捆书,男生每人搬 3 捆,女生每人搬 2 捆,求男生和女生各几人:
for i ① range(1, 14): for ② in range(1, 14): if i + j == 14 ③ i * 3 + j * 2 == 38: print(i, j)答案
① in ② j ③ and
题目 72
输出 100 以内所有满足 a<b 的勾股数:
for a in ①(1, 101): for b in range(1, 101): for c in range(1, 101): if a * a + b * b == c * c and a ② b: ③(a, b, c)答案
① range ② < ③ print
题目 73
一根长 1 米的竹竿,每次折去原来的二分之一,折几次后小于原长度的 20%:
h = 1t = 0while h ① 0.2: h = h ② 2 t = ③ + 1print(t)答案
① >= ② / ③ t
题目 74
细菌半小时增加一倍,多长时间超过世界人口(76 亿):
h = 1 # 初始细菌数量t = 0 # 初始时间(小时)while h ① 7600000000: h = h ② 2 t = t + 0.5print(③)答案
① <= ② * ③ t
题目 75
某发电厂天然气库存 12000 亿 m³,每天消耗 380 亿 m³,求可用多少天:
m = 12000s = 380t = 0① m >= 380: m = m - s t = t + 1print("可以使用", ②, "天")答案
① while ② t
题目 76
有一学生在 6 岁时把 2000 块压岁钱买基金,年收益率 8%,到 18 岁能拿到多少钱:
s = 2000① i in ② (6, 19): s = ③ * (1 + 0.08)print(s)答案
① for ② range ③ s
题目 77
某投资 200 万,年增长 r1=37.8%,年消耗 r2=49%,求 20 年后的金额:
money = 2000000r1 = 0.378r2 = 0.49for i in ① (20): money = money * (1 + r1 - r2)print("二十年后有钱", ②)答案
① range ② money
最大公约数
题目 78
以下是用辗转相除法求最大公约数的程序:
a = int(input("请输入第一个正整数:"))b = int(input("请输入第二个正整数:"))while b != 0: ① = a % b a = b b = tprint("最大公约数为:", ②)答案
① t ② a