为什么一种比较字符串的方法有效,但另一种方法不起作用?

时间:2014-06-09 18:19:59

标签: python python-2.7 if-statement

我正在尝试制作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:”。

1 个答案:

答案 0 :(得分:0)

因为声明:

('a' or 'e' or 'i' or 'o' or 'u')
首先评估

,这实际上只是返回该列表中的第一件事,这是真的。由于列表'a'中的第一件事评估为true,因此会返回,然后您的比较实际上是在说word[0] == 'a'