【发布时间】:2012-11-24 14:24:22
【问题描述】:
我正在尝试用 Python 制作这个 Pig Latin 翻译器,它运行良好,直到我尝试缩小它的大小。
有人可以看看这段代码并告诉我为什么,当我输入一个开头没有元音的单词时,它仍然会在这个 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'
【问题讨论】:
-
您可能想使用
if low_original[0] in ['a','e','i','o','u']:。否则,即使第一个比较是False,'e'也被评估为True,并且因为您有or,if子句始终是True。
标签: python if-statement