问题描述
我还是python新手,刚刚开始学习。给出的任务是查找给定文本中的标点符号,元音和常量的数量。但是,每当我运行代码时,它只会给我一个0
。
def getInfo(text):
pun = [".","," ","\'","\"","!"]
vowels = ["a","e","i","o","u"]
count = 0
count2 = 0
count3 = 0
for char in text:
if char in pun:
count += 1
return count
if char.lower() in vowels:
count2 += 1
return count2
if (not char.lower() in vowels) and (not char.lower() in pun):
count3 += 1
return count3
解决方法
程序到达返回时,它将退出循环。
def getInfo(text):
pun = [".","," ","'",'"',"!"]
vowels = ["a","e","i","o","u"]
count = 0
count2 = 0
count3 = 0
for char in text:
if char in pun:
count += 1
if char.lower() in vowels:
count2 += 1
if (not char.lower() in vowels) and (not char.lower() in pun):
count3 += 1
return "count: {0},count2: {1},count3: {2}".format(count,count2,count3)
print(getInfo("We are in 2020."))
输出:
count: 4,count2: 4,count3: 7
,
您正在检查标点符号后重新调整值,其余的将被忽略。因此您得到0。您的代码可用于标点符号检查。
,返回应该在循环之外。
应该是:
def getInfo(text):
pun = [".","\'","\"","u"]
count = 0
count2 = 0
count3 = 0
for char in list(text):
if char in pun:
count += 1
if char.lower() in vowels:
count2 += 1
if (not char.lower() in vowels) and (not char.lower() in pun):
count3 += 1
return (count,count3)
getInfo('myname.is hello world!')
# (4,6,12)
,
您正在使用return
关键字,也就是说,下面的所有代码都不会运行,并且该函数将返回变量count
。
请确认。