我必须创建两个函数,一个函数要求用户输入一个字符,并通过返回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)
关于如何让它计算出正确的元音数量,有什么想法吗?
您的代码看起来不错(除了错误的缩进,我认为这是复制粘贴错误)。只是一些小项目。
如果你有
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
我希望这能奏效。
您的countvowel
函数非常混乱。count 0
不是有效的语法,您的缩进是错误的。我认为您的主要问题是return
语句在循环中。当Python执行return
时,函数会立即停止并返回值。它不会一直执行函数。如果return
在循环中,则将其移出循环。
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)