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

如何将指定代码封装为get_user_answer函数并在main()中调用?

封装用户输入验证函数的实现与调用

先修正你原代码里的两处语法错误:

  • input(">>",) 多了多余的逗号,应写成 input(">>")
  • range(1, len(something): 缺少闭合括号,且因为range是左闭右开区间,若要包含len(something)这个值,得写成range(1, len(something)+1)

接下来按照你要求的get_user_answer(n: int, p: str) -> int格式封装函数,其中:

  • n 对应原代码里的len(something),即输入允许的最大值
  • p 是给用户的输入提示文本

完整函数实现

def get_user_answer(n: int, p: str) -> int:
    while True:
        user_input = input(p)
        try:
            # 尝试将输入转为整数
            user_input = int(user_input)
        except ValueError:
            # 转换失败时直接回到循环开头,重新获取输入
            continue
        # 判断输入是否在1到n的有效范围内(包含n)
        if user_input in range(1, n + 1):
            return user_input

在main()函数中调用的示例

def main():
    # 假设原代码中something的长度为5,直接传入n=5
    valid_answer = get_user_answer(n=5, p=">> ")
    print(f"你输入的有效数字是:{valid_answer}")

if __name__ == "__main__":
    main()

补充说明

  • 用continue替代原代码的pass,转换失败时直接重启循环,逻辑更直观
  • range(1, n+1)确保用户输入能取到n,和你原代码的预期范围一致
  • 符合条件时用return直接返回结果并跳出循环,替代原代码的break逻辑

内容的提问来源于stack exchange,提问作者Linz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 11:45:33