验证一个字母是否在python字符串中-为什么得到这个结果?

验证一个字母是否在python字符串中-为什么得到这个结果?,python,Python,我是编程新手,正在学习Python 3.4。我正在做一个练习,以确定用户定义的字母是元音还是辅音 我最初的if声明如下: letter = input('Enter a letter') if letter == 'a' or 'e' or 'i' or 'u': print('your letter is a vowel') else: print ('your letter is a consonant') if letter == 'a' or letter == 'i' or

我是编程新手,正在学习Python 3.4。我正在做一个练习,以确定用户定义的字母是元音还是辅音

我最初的if声明如下:

letter = input('Enter a letter')

if letter == 'a' or 'e' or 'i' or 'u':
    print('your letter is a vowel')
else:
print ('your letter is a consonant')
if letter == 'a' or letter == 'i' or .......
这表明我的信每次都是元音

从那以后,我知道答案是if语句如下所示:

letter = input('Enter a letter')

if letter == 'a' or 'e' or 'i' or 'u':
    print('your letter is a vowel')
else:
print ('your letter is a consonant')
if letter == 'a' or letter == 'i' or .......
我的问题是为什么我最初的if语句每次都返回一个元音,而没有给我一个错误


我的思路是,它正在验证它是否是字符串。

任何非零值在条件中计算为True。此外,比较运算符(
=
在本例中)的优先级高于逻辑运算符(
)。(详情:)
因此python将if语句解释为:

if (letter == 'a') or ('e') or ('i') or ('u'):
由于“e”不是零或类似于零,if的这一部分是真的,所以表达式是真的

比您的工作解决方案更简单的方法是:

if letter in 'aeiou':

检查字母是否为字符串中的字符。

谢谢!理解。