0. 人口翻倍
population.py
据统计2018年底我国总人口13.95亿,自然增长率3.81‰,使用 while 循环编写程序,请问大约多少年后我国人口数将翻倍?输出: n年后,我国人口数将翻倍。
population = 13.95 # 2018年的人口, 翻倍大概是27.90
# 自然增长率
natural_growth_rate = 0.00381
# 年数计数器
years = 0
# 当人口还没有翻倍时, 继续循环
while population < 27.90:
population *= 1 + natural_growth_rate # 更新人口数
years += 1 # 增加年数
# print(f"第{years}年的人口: {population:.2f}") # 输出人口数
print(f"{
years}年后,我国人口数将翻倍。") # 183年后,我国人口数将翻倍。
1. 纸张折叠
mountain.py
一张纸厚0.08mm,编写程序,请问折叠多少次可以达到珠穆朗玛峰的高度8848.86米。
thickness = 0.08*0.001 # 1mm=0.001m
times = 0
while thickness < 8848.86: # 珠穆朗玛峰的高度,单位米
thickness = thickness*2 # 更新厚度
times += 1 # 增加次数
#print(f"第{times}次的厚度: {thickness:.4f}") # 输出厚度
print(f"折叠次数大约为: {
times}") # 折叠次数大约为: 27
2. 求数之和
number_sum. py
分别使用 while 循环和 for 循环 编写程序,计算输出1~100000自然数之和。
# 使用while循环
sum_while = 0
counter_while = 1
while counter_while <= 100000:
sum_while += counter_while
counter_while += 1
print(f"和:{
sum_while}") # 和:5000050000
# 使用for循环
sum_for = 0
for i in range(1, 100001):
sum_for += i
print(f"和:{
sum_for}") # 和:5000050000
3. 统计字符
famous_remark.py。
使用for循环编写程序,将你最喜欢的一句中文励志名言每个字和标点之间添加空格后,一行显示输出;并在下一行输出该句名言所包含的字符数。
quote = "我之所以成功,是因为我不怕失败。"
quoted_with_spaces = " "
n = 0 # 字数
for character in quote:
n += 1
quoted_with_spaces += character + " "
print(quoted_with_spaces.strip()) # 使用strip()移除末尾的多余空格
print(f"这句名言包含的字符总数为: {
n}")
4. 九九乘法表
multiplication_table.py
使用for循环嵌套编写程序,输出一份九九乘法表。
# 使用两层for循环嵌套输出九九乘法表
for i in range(1, 10):
for j in range(1, i + 1):
print('{}*{}={}\t'.format(j, i, i * j), end='')
print() # 换行
5. 打印三角形
character_pic.py
使用for循环嵌套编写程序,输出如右图所示的三角形字符图案。
for i in range(1, 6): # 外层循环控制行数
# 打印前导空格
for j in range(5 - i):
print(" ", end=" ")
# 打印星号
for j in range(1, 2*i):
print("*", end=" ")
print("\n") # 每行结束后换行
6. 密码登录
password.py
使用while循环和break语句编写程序,如设定银行卡账户的6位密码为888888。用户输入密码,密码正确则提示“密码正确,正进入系统!”;密码错误则提示“密码错误,您还有n次机会!";密码输错6次后则提示“该卡被锁死,请与发卡行联系!”。
count = 0
password = "888888"
while count < 6:
guess = input("请输入密码:")
if guess == password:
print("密码正确,正进入系统!")
break
else:
print(f"密码错误,您还有{
6 - count - 1}次机会!")
count += 1
else:
print(f"该卡被锁死,请与发卡行联系!")
7. 猜色子面
guess_dice.py
使用while循环和break语句编写程序,随机产生色子的一面(数字1~6),给用户三次猜测机会,程序给出猜测提示(偏大或偏小)。若某次猜测正确,则提示“正确!”,并中断循环;如果三次均猜错,则提示“三次机会已用完,正确结果为x!”。
import random
answer = random.randint(1, 6) # 生成1-6之间的随机数
times = 3 # 设置次数限制
# 开始游戏
while times > 0:
# 提示用户输入并接收输入
guess = int(input("请猜色子面(1-6): "))
# 判断用户输入是否正确
if guess == answer:
print("正确!")
break # 猜对了就跳出循环
#elif guess < 1 or guess > 6:
# print("输入的数字不在范围内。")
else:
times -= 1 # 错误次数减1
if guess < answer:
print("偏小")
else:
print("偏大")
else:
print(f"三次机会已用完,正确结果为{
answer}!",)
8. 过滤汉字
filter_word.py
使用for循环和continue语句编写程序,从键盘输入一段汉字,如果其中包括“海”字(可能出现0次、1次或多次),则在输出时,过滤掉该字,其他内容原样输出。
# 输入一段汉字并打印,如果包含“海”字则跳过
chinese_text = input("请输入一段汉字:")
for char in chinese_text:
if char == '海':
continue # 跳过当前迭代,继续下一次迭代
print(char, end='') # 打印不包括“海”的字符
9. 水仙花数
Narcissistic_number.py
编写程序,通过循环结构输出全部水仙花数,并统计其数量。(水仙花数:是一个三位数,该数值正好等于其各位数字的立方和。例如153是水仙花数:13+53+33=153)
count = 0
for num in range(100, 10000):
sum_of_cubes = sum(int(digit) ** len(str(num)) for digit in str(num))
if num == sum_of_cubes:
print(num)
count += 1
print(f"共有{
count}个水仙花数")
10. 求质数
prime_number.py
使用for循环嵌套、else、break语句编写程序,求2~100之间的素数(质数),以每行5个显示输出。
# 使用for循环嵌套和条件判断来打印2-100之间的质数,每行输出5个
count = 0
for num in range(2, 101):
for i in range(2, num):
if num % i == 0:
break
else:
print(num, end=' ')
count += 1
if count % 5 == 0:
print() # 换行