定义一个函数isVowel(char),如果char是元音('a','e','i','o'或'u'),则返回True,否则返回False

use*_*771 -3 python

题:

定义一个函数isVowel(char),如果char是元音('a','e','i','o'或'u'),则返回True,否则返回False.您可以假设char是任何情况下的单个字母(即'A'和'a'都有效).

不要在中使用关键字.您的函数应该接受一个字符串并返回一个布尔值.

代码给出:

def isVowel(char):
    '''
    char: a single letter of any case

    returns: True if char is a vowel and False otherwise.
    '''
Run Code Online (Sandbox Code Playgroud)

我的代码:

def isVowel(char):
    '''
    char: a single letter of any case

    returns: True if char is a vowel and False otherwise.
    '''
    if char == 'a' or 'e' or 'i' or 'o' or 'u' or 'A' or 'E' or 'I' or 'O' or 'U':
        return True
    else:
        return False
Run Code Online (Sandbox Code Playgroud)

我的问题: 我的输出始终为True.我究竟做错了什么?

Roh*_*ain 8

你的if语句:

if char == 'a' or 'e' or 'i' or 'o' or 'u' or 'A' or 'E' or 'I' or 'O' or 'U':
        return True
Run Code Online (Sandbox Code Playgroud)

相当于:

if (char == 'a') or 'e' or 'i' or 'o' or 'u' or 'A' or 'E' or 'I' or 'O' or 'U':
Run Code Online (Sandbox Code Playgroud)

它将始终被评估为True,或者e也是True,因此您的函数总是返回True.

将您的if语句更改为:

if char == 'a' or char == 'e' or char == 'i' so on...:
        return True
Run Code Online (Sandbox Code Playgroud)

但是,如果您可以使用in运算符,这个问题非常简单.这是这样的:

def isVowel(char):
    return char.lower() in 'aeiou'
Run Code Online (Sandbox Code Playgroud)