Python中if/else循环的问题

2024-04-25 21:34:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试用Python制作这个Pig拉丁语翻译程序,它一直工作得很好,直到我试图缩小它一点。在

有人能看看这个代码并告诉我为什么,当我在一个单词的开头输入一个没有元音的单词时,它仍然会在if语句中打印“元音”代码?在

代码:

pyg = 'ay'

original = raw_input('Enter a word: ')
low_original = original.lower()

if len(low_original) > 0 and low_original.isalpha():
        print low_original
        if low_original[0] == 'a' or 'e' or 'i' or 'o' or 'u':
                print "vowel"
                pyg_vowel = low_original + pyg
                print pyg_vowel
        else:
                print "consonant"
                pyg_cons = low_original[1: ] + low_original[0] + pyg
                print pyg_cons
else:
        print 'empty'

Tags: or代码if语句单词elselowprint
3条回答

如果总是返回真的话!在

pyg = 'ay'

original = raw_input('Enter a word: ')
low_original = original.lower()

if len(low_original) > 0 and low_original.isalpha():
    print low_original
    if low_original[0] in ['a' , 'e' , 'i' , 'o' , 'u']:
            print "vowel"
            pyg_vowel = low_original + pyg
            print pyg_vowel
    else:
            print "consonant"
            pyg_cons = low_original[1: ] + low_original[0] + pyg
            print pyg_cons
else:
    print 'empty'

你需要分别检查所有的元音。在

目前,您的if条件评估为:

if (low_original[0] == 'a') or 'e' or 'i' or 'o' or 'u':

or返回其条件中的第一个真值,这将是True或{},这取决于第一个条件是否为真。现在,由于'e'被计算为True,所以这两个值都是true,因此您的条件总是true。在

你应该这样做:

^{pr2}$

或者:-

if low_original[0] in ('a', 'e', 'i', 'o', 'u'):

您应该替换字符串:

if low_original[0] == 'a' or 'e' or 'i' or 'o' or 'u':

有:

^{pr2}$

相关问题 更多 >

    热门问题