如何检查var是否存储了“#”或任何特殊字符

时间:2019-03-20 13:51:34

标签: python-3.x

像这样的简单代码:

for input in sys.stdin:
    if input=='#': break .   #this is considered false even if I type # and wont break
    print(input)             #it prints #

我希望用户键入#来停止循环,但是即使我键入#,该语句仍被认为是错误的。

不仅是“#”,而且是“!”或“ @”等。

有人知道为什么吗?谢谢。

3 个答案:

答案 0 :(得分:0)

由于您询问了原因,我认为它实际上是您在输入末尾添加的折线。如果您使用此代码,则它实际上可以工作:

import sys

for input in sys.stdin:
    input = input.strip()
    if input=='#': 
        break
    print(input)

在这里您可以看到折线在字符串中:

import sys
for user_input in sys.stdin.detach():
    print(user_input)

答案 1 :(得分:0)

从用户那里获取输入的通常方法是使用input函数:

inp = input('Type something')
if inp!='#': 
  print(inp)

使用除#以外的任何输入运行将回显您的输入,否则将无济于事(如您所说的break,但是由于它不在循环)

答案 2 :(得分:0)

n

上面的代码无法正常运行,因为sys.stdin是文件句柄,并且不会到达某些'...'。

但是您可以使用下面的代码,它会破坏您的期望:

for something in sys.stdin:
    ...