我正在尝试用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'
Run Code Online (Sandbox Code Playgroud)
你需要分别检查所有的元音.
目前,您的if条件评估为: -
if (low_original[0] == 'a') or 'e' or 'i' or 'o' or 'u':
Run Code Online (Sandbox Code Playgroud)
or返回其条件中的第一个真值,该值将在此处True或e此处,具体取决于您的第一个条件是否为True.现在,因为'e'被评估为True,所以这两个值都是true,因此你的条件将始终如此true.
你应该这样做: -
if low_original[0] in 'aeiou':
Run Code Online (Sandbox Code Playgroud)
要么: -
if low_original[0] in ('a', 'e', 'i', 'o', 'u'):
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1161 次 |
| 最近记录: |