输入不适用于字符串(python 2.7),并且当用户使用拉丁文本提供时会抛出一个NameError。
如果给它非英语文本(比如说西里尔语),它将抛出一个SyntaxError
为什么?
答案 0 :(得分:0)
将input
视为表达式求值程序(与eval
不安全,并且已被Python 3中的严格字符串输入替换。
所以它就像你在控制台中输入标识符一样:
SyntaxError: invalid syntax
>>> fac
Traceback (most recent call last):
File "<interactive input>", line 1, in <module>
NameError: name 'fac' is not defined
>>>
fac
是有效标识符(因为除了其他注意事项,它符合ASCII标准)但未定义,因此NameError
现在(使用法语口音)
>>> féc
File "<interactive input>", line 1
féc
^
SyntaxError: invalid syntax
请注意,解析在第一个非ASCII字符处停止,因此未查找任何标识符。 SyntaxError
首先来到这里。
现在,您似乎需要raw_input()
才能输入字符串(或在引号之间输入您的西里尔字符串)。