我正在尝试创建一个函数,该函数输入字符串并返回字符串中处于奇数位置的元音中的元音数

时间:2018-11-05 20:52:41

标签: python-3.x

我有一个作业分配来创建此功能。 这是我的代码:

def countVowelsOdd(n):
    length = len(n)
    count = 0
    for i in range(length): 
        if i % 2 != 0:
            if n[i] == "a" or "A" or "e" or "E" or "i" or "I" or "o" or "O" or "u" or "U":
                count = count + 1
    return count

此函数的输出与预期输出的对比:https://i.imgur.com/e524tW6.png

2 个答案:

答案 0 :(得分:0)

如果您需要考虑在奇数位置的元音,请执行以下操作:

for i in range(1, length, 2):

range文档中检查您可以传递startstopstep参数的地方。然后范围将从1、3、5 ...到length-1

您也可以

if n[i].lower() in "aeiou":

用作检查字母是否为元音的缩写。以this问题为例。

答案 1 :(得分:0)

实际上,您唯一的问题是线路

if n[i] == "a" or "A" or "e" or "E" or "i" or "I" or "o" or "O" or "u" or "U":

要么需要

if n[i] == "a" or n[i] == "A" or n[i] == "e" or n[i] == "E" or n[i] == "i" or n[i] == "I" or n[i] == "o" or n[i] == "O" or n[i] == "u" or n[i] == "U":

或者您也可以使用

if n[i] in "aAeEiIoOuU":

我实际上更喜欢。但是,这条线仍然可以改善

if n[i].upper() in "AEIOU":