我是 python 新手(和一般编程),我自己似乎无法找到解决方案。我想检查字符串的第一个字母是否等于存储在数组中的任何字母,如下所示:
letter = ["a", "b", "c"]
word = raw_input('Enter a word:')
first = word[0]
if first == letter:
print "Yep"
else:
print "Nope"
但这不起作用,有人知道它会如何吗?提前致谢!
我是 python 新手(和一般编程),我自己似乎无法找到解决方案。我想检查字符串的第一个字母是否等于存储在数组中的任何字母,如下所示:
letter = ["a", "b", "c"]
word = raw_input('Enter a word:')
first = word[0]
if first == letter:
print "Yep"
else:
print "Nope"
但这不起作用,有人知道它会如何吗?提前致谢!
您需要使用in
运算符。使用if first in letter:
.
>>> letter = ["a", "b", "c"]
>>> word = raw_input('Enter a word:')
Enter a word:ant
>>> first = word[0]
>>> first in letter
True
还有一个错误的测试,
>>> word = raw_input('Enter a word:')
Enter a word:python
>>> first = word[0]
>>> first in letter
False
提示在您的问题中。使用any
. 这使用生成器表达式来检查它是 True 还是 False。
any(first == c for c in letter)
尝试使用in
关键字:
if first in letter:
在您当前的代码中,您将字符串字符(first
等于 中的第一个字符word
)与列表进行比较。所以,假设我的输入是"a word"
. 您的代码实际上在做的是:
if "a" == ["a", "b", "c"]:
这将永远是错误的。
然而,使用in
关键字正在做:
if "a" in ["a", "b", "c"]:
在这种情况下,它测试是否"a"
是的成员["a", "b", "c"]
并返回 true。
在我看来,问题是您要问一个字符是否等于一个数组。这将始终返回 false。
尝试使用循环检查“字母”中的每个项目的“第一”。让我知道您是否需要帮助来弄清楚如何做到这一点。