' ' in word == True
我正在编写一个程序来检查字符串是否是一个单词。为什么这不起作用,是否有更好的方法来检查字符串是否没有空格/是一个单词..
答案 0 :(得分:62)
==
优先于in
,因此您实际上正在测试word == True
。
>>> w = 'ab c'
>>> ' ' in w == True
1: False
>>> (' ' in w) == True
2: True
但你根本不需要== True
。 if
需要[评估为真或假的东西],' ' in word
将评估为真还是假。所以,if ' ' in word: ...
就好了:
>>> ' ' in w
3: True
答案 1 :(得分:15)
写if " " in word:
而不是if " " in word == True:
。
说明:
a < b < c
相当于(a < b) and (b < c)
。in
!' ' in w == True
相当于(' ' in w) and (w == True)
,而不是您想要的。答案 2 :(得分:9)
有很多方法可以做到这一点:
t = s.split(" ")
if len(t) > 1:
print "several tokens"
为了确保它匹配各种空间,您可以使用re模块:
import re
if re.search(r"\s", your_string):
print "several words"
答案 3 :(得分:1)
你可以尝试这个,如果找到任何空间,它将返回第一个空格所在的位置。
if mystring.find(' ') != -1:
print True
else:
print False
答案 4 :(得分:0)
word = ' '
while True:
if ' ' in word:
word = raw_input("Please enter a single word: ")
else:
print "Thanks"
break
这是更惯用的python - 不需要与True或False进行比较 - 只需使用表达式' ' in word
返回的值。
此外,您不需要将pastebin用于如此小的代码片段 - 只需将代码复制到帖子中并使用小1和0按钮使代码看起来像代码。
答案 5 :(得分:0)
您可以说word.strip(" ")
从字符串中删除任何前导/尾随空格 - 您应该在if
语句之前执行此操作。这样,如果有人输入" test "
这样的输入,你的程序仍然有用。
也就是说,if " " in word:
将确定字符串是否包含任何空格。如果这不起作用,请您提供更多信息?
答案 6 :(得分:0)
使用此:
word = raw_input("Please enter a single word : ")
while True:
if " " in word:
word = raw_input("Please enter a single word : ")
else:
print "Thanks"
break
答案 7 :(得分:0)
# The following would be a very simple solution.
print("")
string = input("Enter your string :")
noofspacesinstring = 0
for counter in string:
if counter == " ":
noofspacesinstring += 1
if noofspacesinstring == 0:
message = "Your string is a single word"
else:
message = "Your string is not a single word"
print("")
print(message)
print("")
答案 8 :(得分:0)
您可以在Python 3中使用“ re”模块。
如果确实如此,请使用以下方法:
re.search('\s', word)
如果存在匹配项,则返回“ true”,否则返回“ false”。
答案 9 :(得分:0)
def word_in(s):
return " " not in s
答案 10 :(得分:0)
您可以看到以下代码的输出是否为0。
'import re
x=' beer '
len(re.findall('\s', x))