我正在尝试制作Pig Latin翻译器,但在测试第一个字母是否为元音时遇到了一些麻烦。我做了一些谷歌搜索,并找到了解决它的方法,但我想知道为什么一个工作而另一个不工作。这是我的代码(注释部分是不起作用的部分):
word = raw_input("Input a word: ").lower()
vowels = {'a', 'e', 'i', 'o', 'u'}
if len(word) > 0 and type(word) == str:
#if word[0] == ('a' or 'e' or 'i' or 'o' or 'u'):
# pigWord = word + 'ay'
# print pigWord
if word[0] in vowels:
pigWord = word + 'ay'
print pigWord
else:
pigWord = word + word[0] + 'ay'
print pigWord[1:]
else:
print 'Please enter a valid word.'
当我使用第一种方法(纪念部分)时,它似乎只测试第一个字母是否为“a”,如果不是,则转到“else:”。
答案 0 :(得分:0)
因为声明:
('a' or 'e' or 'i' or 'o' or 'u')
首先评估,这实际上只是返回该列表中的第一件事,这是真的。由于列表'a'
中的第一件事评估为true,因此会返回,然后您的比较实际上是在说word[0] == 'a'