我试图从用户那里读取一个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
-
- 空"可迭代项"-
''
、[]
、{}
、()
- 布尔值"False"-
False
、0
、0.0