2014-07-02 84 views
0

我的脚本要求用户交互并要求他/她的名字。我正在使用raw_input来展示此功能。 我想检查用户是否给出了任何输入。 我想用空白检查输入的字符串。 目前的代码看起来是这样的:如何检查用户是否在raw_input中输入字符串(在python中)?

str = raw_input("Enter your name: ") 
if("" in str): 
    print "user din't entered anything" 

上述代码的工作部分,并且如果用户按下而没有任何输入输入,输出user din't entered anything被打印。

问题是,当用户输入类似foo bar之类的东西时,上述代码也有效[请注意foobar之间的空格。是的,我知道这是为什么发生。

另一种方法是检查输入的字符串的长度。如果用户没有输入任何内容,那么长度将为零。但同样的问题出现在这里。如果用户输入多个空格,会怎么样!长度逻辑将失败。

我该怎么做才能检查用户是输入了字符串还是空白? 有没有什么字符串在python中,我可以做if(str == "") 任何帮助表示赞赏。

+0

'如果不是str:打印'没有输入'' – Hyperboreus

+0

感谢您的快速回复,但是这会失败,并且会有多个空白。 – v1h5

+1

@ v1h5:你为什么说“多于一个空白”?假设“空白”表示空白字符,它将任意数量的空白作为有效输入处理,而不仅仅是一个。另外,x中的'''对于任何字符串'x'都是正确的,而不仅仅是对于其中有空格的字符串。 – user2357112

回答

1

isspace()检查该字符串就是空间,而不需要创建一个新的字符串对象作为strip()

if(not str or str.isspace()): 
    print "user din't entered anything" 

旁白:str是内置。用自己的变量隐藏它可能导致有趣的错误

+0

@ user2357112的确如此。这种情况需要检查 –

+0

这工作得很好。我接受这个答案。欢呼@gnibbler – v1h5

+0

是的,str是python中的一个函数。我仅仅为了举例而使用了str。我会小心不要使用这个。 :) – v1h5

2
value = raw_input("Enter your name: ") 
if not value.strip(): 
    print "user din't entered anything" 

strip()删除tracing空格和单词之间。如果是空的话。它删除所有

+0

你几乎试过这个吗? – v1h5

+0

@ v1h5是的。我试过了 –

+0

我认为@ v1h5的评论是在逻辑修复之前编写的。 – mabac

相关问题