You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 16:20:38