试图写一个函数,只返回字符串中的大写字母。2如果我在函数中使用print,它会报告所有的大写字母,但会导致双重打印,因为在调用函数时必须使用print。
我如何使用“return”代替print?目前它只返回第一个字母。
def get_capitals(string):
for i in string:
try:
if ord(i) in range(65, 91):
print (i, end="")
except:
pass
print(get_capitals("CS1301"))
print(get_capitals("Georgia Institute of Technology"))
6条答案
按热度按时间wydwbb8l1#
可以使用
yield
将函数转换为生成器dkqlctbz2#
你必须创建一个字符串,而不是直接打印每个captital,并使用end=''。这就像一个流,而你想存储你的数据,并在函数结束时返回它。
0g0grzrc3#
你可以创建一个空的字符串变量,并在循环中将大写字母附加到它的后面,然后在循环结束时,你可以返回包含所有大写字母的最终字符串。
2guxujil4#
创建一个新的字符串变量并将其追加,而不是print。
示例
7jmck4yq5#
创建一个空列表并添加大写字母,然后使用join将其转换为string return that
n9vozmp46#
Return
和print
是完全不同的东西。Return不“打印”任何东西。你不能用“return”替换“print”语句。
当你的函数到达一个return语句时,它将结束函数。这就是“return”的意思。它返回到调用范围。
你知道你的程序的输出吗?它打印
在您当前的代码中,您可以说:
这将导致
单个
print()
语句为您提供了一个方便的换行符。打印cs
和GIT
的是函数调用,而不是您周围的print
语句。您的print语句只打印函数的返回值,并且因为您的函数不返回任何内容,它会在函数调用生成的输出中添加一个None
。如果你想在函数中使用return,而不想在函数中使用print(),那么你必须在你使用print()的地方组合函数的返回值,在这些地方组合返回字符串,然后用return语句返回组合后的值。
那么使用'' print(get_capitals(“CS1301”))'''函数的返回值是有意义的,然后用print()定义该返回值。
稍微摆弄一下,你就会明白会发生什么。