检查字符串中是否包含空格

54 投票
12 回答
216893 浏览
提问于 2025-04-16 01:38
' ' 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

但是你根本不需要 == Trueif 语句需要的是一个能判断为真或假的东西,而 ' ' in word 本身就会判断出是真还是假。所以,if ' ' in word: ... 这样写就可以了:

>>> ' ' in w
3: True

撰写回答