检查字符串中是否有空格

时间:2010-07-21 16:10:45

标签: python string

' ' in word == True

我正在编写一个程序来检查字符串是否是一个单词。为什么这不起作用,是否有更好的方法来检查字符串是否没有空格/是一个单词..

11 个答案:

答案 0 :(得分:62)

==优先于in,因此您实际上正在测试word == True

>>> w = 'ab c'
>>> ' ' in w == True
1: False
>>> (' ' in w) == True
2: True

但你根本不需要== Trueif需要[评估为真或假的东西],' ' in word将评估为真还是假。所以,if ' ' in word: ...就好了:

>>> ' ' in w
3: True

答案 1 :(得分:15)

if " " in word:而不是if " " in word == True:

说明:

  • 在Python中,例如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))