我必须创建两个函数,一个用于询问用户角色,并通过返回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)
关于如何实际计算正确的元音数量的任何想法?
答案 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)