读取python中的“\ n”字符失败

时间:2013-12-15 00:48:23

标签: python

我正在尝试从用户那里读取\n字符,但它无效。 这是我的代码:

op = raw_input("Hit enter to continue!")

if op == '\n':
 #run code

然而,当我点击输入时,if condition内的代码无法运行。这就像op不是\n,虽然我只是按了回车。

5 个答案:

答案 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 -

  1. 清空“iterables” - ''[]{}()
  2. 布尔“假” - False00.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()