我正在尝试从用户那里读取\n
字符,但它无效。
这是我的代码:
op = raw_input("Hit enter to continue!")
if op == '\n':
#run code
然而,当我点击输入时,if condition
内的代码无法运行。这就像op不是\n
,虽然我只是按了回车。
答案 0 :(得分:4)
raw_input
从输入的末尾删除\n
。如果你想检查字符串的空白,即:用户刚刚使用了输入...只需使用if not op
。
你也可以很容易地自己调试,例如:
op = raw_input('enter something: ') # hit only enter
print repr(op) # it's a blank string
答案 1 :(得分:1)
来自raw_input docstring:"从标准输入中读取字符串。删除尾随换行符。"
所以只需改为
if op == '':
#run code
答案 2 :(得分:1)
Nope,raw_input
(Python 2.x)或input
(Python 3.x)不会返回最后一个NewLine(\n
)字符,因为这就是它知道你的方式已完成输入输入。
如果要检查空用户输入(简单输入),可以执行
if not op:
# code
或
if op == "":
# code
if not op:
版本是一个通用语句,因为not
的布尔值评估会为所有这些返回True
-
''
,[]
,{}
,()
False
,0
,0.0
答案 3 :(得分:1)
检查空白输入的最佳方法是首先剥离然后测试真实性:
if not op.strip():
#code
您需要调用strip(),因为空格仍为True
:
>>> s
' '
>>> bool(s)
True
答案 4 :(得分:1)
如果你想暂停一个python 2.x脚本,直到用户点击进入你可以使用:
raw_input("Hit enter to continue!")
然后无论输入什么,脚本都会继续使用下面的代码。我倾向于为它创建一个函数(例如一个名为“prompt”),这样如果我想编辑提示或行为,我就可以编辑该函数,所以:
def prompt():
raw_input("Hit enter to continue!")
然后在您的脚本中,当您想暂停直到用户输入任何内容时使用:
prompt()