读取 python 中的"n"字符失败



我试图从用户那里读取一个n字符,但它不起作用。这是我的代码:

op = raw_input("Hit enter to continue!")
if op == 'n':
 #run code

但是,当我点击enter时,if condition中的代码不会运行。就好像op不是n,尽管我刚刚点击了回车键。

raw_input从输入的末尾删除n。如果你想检查字符串的空白,即:用户刚刚使用了回车。。。只需使用CCD_ 6。

您也可以很容易地自己调试,例如:

op = raw_input('enter something: ') # hit only enter
print repr(op) # it's a blank string

From raw_input docstring:"从标准输入中读取字符串。尾部换行符被剥离。"

所以改为

if op == '':
 #run code

检查空白输入的最佳方法是首先剥离,然后测试真实性:

if not op.strip():
   #code

您需要调用strip(),因为空格仍然是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(Python 2.x)或input(Python 3.x)不会返回最后一个NewLine(n)字符,因为这就是它知道您已经完成输入的原因。

如果你想检查空的用户输入(简单输入),你可以做

if not op:
    # code

if op == "":
    # code

if not op:版本是一个通用语句,因为not的布尔求值为所有这些返回True-

  1. 空"可迭代项"-''[]{}()
  2. 布尔值"False"-False00.0

最新更新