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

Python 3.9中isdigit()与raw_input()配合异常,请求技术指导

解决你的Python版本兼容问题

Hey Rob,别着急,你的问题根源在于Python 2和Python 3的语法差异,咱们一步步来理清并修正:

问题核心分析

你提到用的是Python 3.9,但代码里用了两个Python 2专属的特性:

  1. raw_input():这是Python 2的输入函数,Python 3里已经被重命名为input(),它会直接返回用户输入的字符串。
  2. print语句:Python 2里print是语句,不需要括号;但Python 3里print是内置函数,必须加括号调用,比如print("内容")。

另外还有两个可以优化的细节:

  • 不需要把year再转成字符串,因为input()(或Python 2的raw_input())返回的本来就是字符串。
  • 条件判断里== True是多余的,直接用if year.isdigit():就足够简洁清晰。

修正后的Python 3代码

year = input()
if year.isdigit():
    print("This is a number")
else:
    print("This is not a number")

额外排查点:输入带空格的情况

如果你的代码能运行但判断错误,还有一种可能是输入的数字前后带了空格(比如输入23),这种情况下isdigit()会返回False。可以给输入加个去空格处理:

year = input().strip()
if year.isdigit():
    print("This is a number")
else:
    print("This is not a number")

这样不管输入前后有没有空格,都能正确判断纯数字输入啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 17:38:14