Python 3.9中isdigit()与raw_input()配合异常,请求技术指导
解决你的Python版本兼容问题
Hey Rob,别着急,你的问题根源在于Python 2和Python 3的语法差异,咱们一步步来理清并修正:
问题核心分析
你提到用的是Python 3.9,但代码里用了两个Python 2专属的特性:
raw_input():这是Python 2的输入函数,Python 3里已经被重命名为input(),它会直接返回用户输入的字符串。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
相关产品推荐
相关产品推荐

