我是python(以及一般编程)的新手,我似乎无法通过自己找到解决方案。我想检查字符串的第一个字母是否等于存储在数组中的任何字母,如下所示:
letter = ["a", "b", "c"]
word = raw_input('Enter a word:')
first = word[0]
if first == letter:
print "Yep"
else:
print "Nope"
但这不起作用,有人知道它会怎样?提前谢谢!
答案 0 :(得分:14)
您需要使用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
答案 1 :(得分:5)
尝试使用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。
答案 2 :(得分:4)
提示在您的问题中。使用any
。这使用生成器表达式来检查它是True还是False。
any(first == c for c in letter)
答案 3 :(得分:0)
我看到的问题是,你问的是一个字符是否等于一个数组。这将始终返回false。
尝试使用循环检查'first'中每个项目的'first'。如果您需要帮助来确定如何执行此操作,请告诉我。