检查字符串中是否包含空格
' ' in word == True
我正在写一个程序,用来检查一个字符串是否是一个单词。为什么这个方法不行?有没有更好的办法来检查一个字符串里没有空格,或者说它是不是一个单词?
12 个回答
16
有很多方法可以做到这一点:
t = s.split(" ")
if len(t) > 1:
print "several tokens"
为了确保它能匹配所有类型的空格,你可以使用 re 模块:
import re
if re.search(r"\s", your_string):
print "several words"
25
写 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)
,这并不是你想要的结果。
103
==
的优先级比 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