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

如何在单个函数中实现用户指定范围整数输入并修复类型错误

问题修正:获取指定范围整数的单函数实现

你的代码报错核心原因是错误地把提示文本message当成用户输入去转成整数了——传入的'Get number'是字符串,根本没法转成int,这才触发了那个错误。下面是修正后的单函数实现,同时还处理了用户输入非数字的情况:

from typing import Final

def get_int_number_of_first_player(message: str, r_min: int, r_max: int):
    while True:
        # 先获取用户输入
        user_input = input(f'{message}:\n')
        try:
            # 尝试转成整数
            num = int(user_input)
            # 校验范围,判断数字是否超出指定区间
            if num < r_min or num > r_max:
                print(f"请输入{r_min}-{r_max}之间的整数")
                continue
            # 符合要求就返回结果
            return num
        except ValueError:
            # 处理输入非数字的异常情况
            print("输入无效,请输入整数")

def main() -> None:
    value_min: Final = 100
    value_max: Final = 999
    result = get_int_number_of_first_player('Get number', value_min, value_max)
    print(f"你输入的有效数字是:{result}")

if __name__ == '__main__':
    main()

关键修正点:

  • 调整逻辑顺序:先获取用户输入,再对输入做类型转换,而非错误地转换提示文本message
  • 用while True循环实现重复校验,直到用户输入符合要求
  • 增加try-except捕获非数字输入的异常,避免程序直接崩溃
  • 修正范围判断逻辑(原代码的区间判断逻辑完全颠倒,正确逻辑是检查数字是否小于最小值或大于最大值)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 20:25:24