如何检查用户是否在 raw_input 中输入字符串(python)?

0 投票
2 回答
1839 浏览
提问于 2025-04-18 11:50

我的脚本需要用户互动,询问他们的名字。我使用了raw_input来实现这个功能。
我想检查用户是否输入了内容。
我想通过将输入的字符串与空字符串进行比较来检查。
目前代码是这样的:

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

上面的代码部分有效,如果用户直接按回车没有输入任何内容,输出会显示用户没有输入任何内容

但问题是,上面的代码在用户输入像foo bar这样的内容时也会有效果[注意foobar之间的空格。是的,我知道这是为什么。]

另一种方法是检查输入字符串的长度。如果用户没有输入任何东西,长度应该是零。但是这里也会出现同样的问题。如果用户输入了多个空格呢!长度的判断就会失效。

我该怎么做才能检查用户是否输入了字符串,或者是否留空?
在Python中有没有什么方法可以让我这样做if(str == "")
任何帮助都很感激。

2 个回答

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

strip() 这个函数的作用是去掉字符串开头和结尾的空格,以及单词之间的空格。如果字符串里有空格,它会把这些空格全部去掉。

1

isspace() 用来检查一个字符串是否只有空格,而不需要像 strip() 那样创建一个新的字符串对象。

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

顺便提一下,str 是一个内置的类型。如果你用自己的变量覆盖了它,可能会引发一些有趣的错误。

撰写回答