10个Python编程练习题

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()  # 换行

在这里插入图片描述


猜你喜欢

转载自blog.csdn.net/weixin_45693567/article/details/143384797