我试图从用户那里读取一个\n
字符,但它不工作。 这里是我的代码:阅读Python中的“ n”字符失败
op = raw_input("Hit enter to continue!")
if op == '\n':
#run code
然而,当我打进入if condition
里面的代码不会运行。这就像op不是\n
,虽然我刚刚进入。
我试图从用户那里读取一个\n
字符,但它不工作。 这里是我的代码:阅读Python中的“ n”字符失败
op = raw_input("Hit enter to continue!")
if op == '\n':
#run code
然而,当我打进入if condition
里面的代码不会运行。这就像op不是\n
,虽然我刚刚进入。
来自raw_input docstring:“从标准输入读取一个字符串,尾随的换行符被删除。
所以才改为
if op == '':
#run code
raw_input
从输入端去除\n
。如果你想检查一个字符串的空白,即:用户刚刚使用输入...只需使用if not op
。
您还可以在此调试自己很容易,比如:
op = raw_input('enter something: ') # hit only enter
print repr(op) # it's a blank string
+1显示如何进行调试。教一个人钓鱼... – SethMMorton
不,raw_input
(Python的2.X)或input
(Python 3.x都有)不返回的最后一个换行符(\n
)字符因为这是它如何知道你已经完成输入输入。
如果你想检查空用户输入(简单的输入),你可以做
if not op:
# code
或
if op == "":
# code
的if not op:
版本是因为从not
布尔评估通用声明返回True
所有这些 -
''
,[]
,{}
,()
False
,0
,0.0
,检查是否有空白的输入的最佳方法是对第一条带然后测试感实性:
if not op.strip():
#code
您需要调用带(),因为空格仍然True
:
>>> s
' '
>>> bool(s)
True
如果你想,直到用户点击进入,你可以只使用暂停的Python 2.x的脚本:
raw_input("Hit enter to continue!")
那么不管是输入脚本会继续使用任何代码遵循什么。我倾向于做它的功能(一个称为例如“提示”),所以,如果我想要编辑的提示或行为,我可以编辑的功能,所以:你什么时候
def prompt():
raw_input("Hit enter to continue!")
然后在您的脚本想暂停直到用户输入任何东西使用:
prompt()
'raw_input'不返回新的行字符。 – Tim