元数计数器使用2个参数

时间:2013-08-06 18:52:49

标签: python recursion counter

我必须创建两个函数,一个用于询问用户角色,并通过返回true或false确定一个字符是元音还是不是。

第二种是调用第一个函数并要求用户输入一个单词。

这是我到目前为止所做的:

vowel = ["A","E","I","O","U","a","e","i","o","u"]
vowelinpt = input("Please enter a character: ")
def isVowel(x):
    if x in vowel:
        return True
    else: 
        return False

a = isVowel(vowelinpt)
print(a)

def countvowel(b):
    count = 0
    for a in b:
        if isVowel(a) == True
        count +=1
    return count

x = input("Please input a WORD: ")
y = countvowel(x)
print(y)

关于如何实际计算正确的元音数量的任何想法?

3 个答案:

答案 0 :(得分:1)

您的代码看起来不错(除了错误的缩进,我认为是复制粘贴错误)。只是一些小项目。

如果你有

if somethingBoolean: return True
else: return False

你可以简单地写

return somethingBoolean

因此:

def isVowel(x): return x in vowels

现在计算,你的缩进是错误的:

def countvowel(b):
    count = 0
    for a in b:
        if isVowel(a): count += 1
    return count

我希望这可以解决问题。

答案 1 :(得分:1)

您的countvowel功能非常混乱。 count 0是无效的语法,并且您的缩进是错误的。我认为你的主要问题是你的return语句在循环中。当Python执行return时,函数会在那里停止并返回值。它不会继续执行该功能。如果它在里面,请将return移出循环。

答案 2 :(得分:1)

countvowel的问题是缩进是搞乱的,而你在if语句后缺少“:”。这将解决它:

def countvowel(b):
    count = 0
    for a in b:
        if isVowel(a) == True:
            count +=1
    return count

但是,您可以真正简化这一切:

vowels = "aeiou"
vowelinpt = input("Please enter a character: ")
def isVowel(x):
   return x.lower() in vowels
a = isVowel(vowelinpt)
print(a)

def countvowel(b):
    # You can also do "return sum(a in vowels for a in b.lower())"
    return len(list(filter(isVowel, b.lower())))
x = input("Please input a WORD: ")
y = countvowel(x)
print(y)