如何修改Python程序,实现用户选择指定问题模块并循环执行
给Python程序添加问题选择循环功能的实现
1. 拆分问题为独立函数
把每个问题的代码封装成单独函数,按需调用,让代码结构更清晰。每个函数对应一个问题,比如run_q1()对应问题1,run_q2()对应问题2,以此类推。
2. 实现循环选择逻辑
用无限循环持续接收用户输入,判断输入是否是1-5的有效编号:
- 输入有效则执行对应问题的函数
- 输入无效(非1-5的数字、字母等)则直接退出循环
修改后的完整代码
# 问题1:水果列表操作 def run_q1(): fruits = ['Apple', 'Banana', 'Cherry', 'Kiwi', 'Melon', 'Mango'] print("初始水果列表:", '\n', fruits) print("-"*56) q1_len = len(fruits) print(f"q1: 水果列表的长度是 {q1_len}") fruits.insert(3, 'Orange') print("q2: 在Cherry和Kiwi之间插入Orange:", '\n', fruits) fruits.append('Plum') print("q3: 在列表末尾追加Plum:", '\n', fruits) print("可以用insert函数往列表末尾添加元素") fruits.remove('Melon') print("q4: 从列表中移除Melon:", '\n', fruits) # 问题2:统计姓名中小写字母'a'的次数 def run_q2(): n = input("请输入姓名:") char = 'a' count = 0 for i in range(len(n)): if n[i] == char: count += 1 print(f"字符'{char}'在姓名{n}中出现了{count}次") # 问题3:统计姓名中大小写字母'a'的总次数 def run_q3(): n = input("请输入姓名:") def count_a(name): return name.lower().count('a') print(f"字符'a'(不区分大小写)在姓名{n}中出现了{count_a(n)}次") # 问题4:输入5个整数,计算最小、最大和平均值 def run_q4(): num_list = [] for _ in range(5): num = int(input("请输入一个整数:")) num_list.append(num) print("整数列表是:", num_list) min_val = min(num_list) max_val = max(num_list) avg_val = sum(num_list) / 5 # 用sum替代手动相加,减少出错概率 print(f"最小值是{min_val},最大值是{max_val},平均值是{avg_val}") # 问题5:列表和元组的切片、索引、成员判断及拼接 def run_q5(): num_list = [-4, 0, 2, 10] print("原始列表:", num_list) num_tuple = (2, 3, 1) print("原始元组:", num_tuple) print("-"*40) print("对num_list使用切片:", num_list[1:3]) print("对num_tuple使用切片:", num_tuple[1:]) print("-"*40) index_l = num_list.index(2) print(f"2在num_list中的索引是{index_l}") index_t = num_tuple.index(2) print(f"2在num_tuple中的索引是{index_t}") print("-"*40) print(f"-4是否在num_list中: {-4 in num_list}") print(f"-4是否在num_tuple中: {-4 in num_tuple}") print("-"*40) # 拼接成列表 concat_list = num_list + list(num_tuple) print("拼接后的列表:", concat_list) # 拼接成元组 concat_tuple = tuple(num_list) + num_tuple print("拼接后的元组:", concat_tuple) # 主循环:用户选择问题编号 while True: print("\n请选择要运行的问题编号(1-5),输入其他内容退出:") choice = input("请输入编号: ") # 判断输入是否有效 if choice not in ['1', '2', '3', '4', '5']: print("输入无效,退出程序") break # 根据选择调用对应函数 if choice == '1': run_q1() elif choice == '2': run_q2() elif choice == '3': run_q3() elif choice == '4': run_q4() elif choice == '5': run_q5()
关键说明
- 函数封装:每个问题代码独立成函数,避免代码堆砌,方便后续维护和单独调试。
- 循环逻辑:用
while True实现无限循环,直到用户输入非1-5内容时触发退出。 - 输入判断:直接校验输入字符串是否在有效列表内,逻辑简单直观。
- 代码优化:问题4用
sum()替代手动累加,降低出错概率;问题5简化成员判断代码,直接输出布尔值,更简洁高效。
内容的提问来源于stack exchange,提问作者kit
相关产品推荐
相关产品推荐

