函数中的return
想要统计多个字符串,可是这段程序只统计了第一个字符串,是因为return只能返回一个值,for循环里面执行到return就会跳出循环吗?求解答,谢谢!def count(*paragraph):
length = len(paragraph)
for i in range(length):
alphabet = 0
numbers = 0
space = 0
others = 0
for each in paragraph:
if each.isalpha():
alphabet += 1
elif each.isdigit():
numbers += 1
elif each == ' ':
space += 1
else:
others += 1
return('第 %d 个字符共有:英文字母 %d 个, 数字 %d 个,空格 %d 个, 其他字符 %d 个' % (i+1, alphabet, numbers, space, others))
print(count('I love fishc.com.', 'I love you, you love me.'))
本帖最后由 Twilight6 于 2020-7-8 17:39 编辑
for循环里面执行到return就会跳出循环吗?
是的 ,函数内一遇到 return 这个函数就运行完毕了,一个函数最主要的作用就是得到返回值,所以一遇到 return 这个函数的使命就完成了
你学到后面可以用 yield 生成器,一次一次的将返回值返回出来
这里的 return 移动到for 循环外即可了
def count(*paragraph):
length = len(paragraph)
for i in range(length):
alphabet = 0
numbers = 0
space = 0
others = 0
for each in paragraph:
if each.isalpha():
alphabet += 1
elif each.isdigit():
numbers += 1
elif each == ' ':
space += 1
else:
others += 1
return('第 %d 个字符共有:英文字母 %d 个, 数字 %d 个,空格 %d 个, 其他字符 %d 个' % (i+1, alphabet, numbers, space, others))
print(count('I love fishc.com.', 'I love you, you love me.'))
是的,只要return了,函数就结束了。 return是for循环外的啊
for循环把所有字符种类及其数量都统计后,返回的结果呀
没大看懂疑问,原谅我的语文{:10_266:} Twilight6 发表于 2020-7-8 17:30
是的 ,函数内一遇到 return 这个函数就运行完毕了,一个函数最主要的作用就是得到返回值,所以一 ...
移到for循环外面,就不能统计第一个字符串了,return返回的值就是统计的第二个字符串。这样还是没有满足要求。谢谢 A.Lyapunov 发表于 2020-7-8 19:59
移到for循环外面,就不能统计第一个字符串了,return返回的值就是统计的第二个字符串。这样还是没有满足 ...
def count(*paragraph):
length = len(paragraph)
for i in range(length):
alphabet = 0
numbers = 0
space = 0
others = 0
for each in paragraph:
if each.isalpha():
alphabet += 1
elif each.isdigit():
numbers += 1
elif each == ' ':
space += 1
else:
others += 1
print('第 %d 个字符共有:英文字母 %d 个, 数字 %d 个,空格 %d 个, 其他字符 %d 个' % (i+1, alphabet, numbers, space, others))
count('I love fishc.com.', 'I love you, you love me.')
页:
[1]