为何这段Python单行代码出现语法错误?我想生成1-100的无限奇数
语法错误原因分析与修复方案
嘿,我来帮你排查这个问题!你的代码思路没问题——用random.randrange生成奇数,通过while True实现无限输出,但出现语法错误大概率是Python版本差异在搞鬼:
- 在Python 3里,
print()是内置函数,必须用括号包裹参数,你的写法(哪怕函数名和括号之间有空格)其实是合法的,理论上能正常运行。 - 但要是在Python 2环境下跑这段代码,问题就来了:Python 2里的
print是个语句而非函数,这时候给它加括号的写法就会触发语法错误(就算没报错,输出的也会是带括号的元组,完全不符合你的预期)。
顺带提个小优化:100 + 1可以直接写成101,代码会更简洁,不过这不是导致语法错误的原因。
修复后的代码示例
如果你用的是Python 3
可以保留你的逻辑,去掉不必要的空格让代码更规范:
import random; while True: print(random.randrange(1, 101, 2))
如果你用的是Python 2
需要把print的括号去掉,改成语句形式:
import random; while True: print random.randrange(1, 101, 2)
兼容Python 2和3的写法
要是想让代码跨版本能用,在开头加一行导入声明就行:
from __future__ import print_function; import random; while True: print(random.randrange(1, 101, 2))
内容的提问来源于stack exchange,提问作者M K
相关产品推荐
相关产品推荐

