如何使 return 具有与打印相同的行为?
How to have the same behaviour with return than print?
我理解“return”在打印执行整个函数时“满足”时停止。也就是说,我永远无法使用 return 获得相同的行为。如果以后不行,为什么初学者要用打印来学习?
如果我写:
for i in range(1, 4):
print(i)
我得到:
1个
2个
3个
.
但是如果我写:
def function():
for i in range(1, 4):
return i
print(function())
我得到:
1
如何有相同的行为?通常我想在我的函数中循环,我不想要第一个值。
#Edit :我尝试使用 return 创建列表,但仍然无法正常工作:
keys = []
values = []
def asking():
for i in range(1, 21):
keys.append(i)
#return keys #works fine here, keys is 1 to 21
values = ["_"]
vide2 = dict(zip(keys, values))
return vide2
print(asking())
我得到了:{1:'_'}
您必须在函数内部创建一个数据结构并 return 它,这是 return 多于一个值的唯一方法。
def function():
my_list = []
for i in range(1, 21):
my_list.append(i)
return my_list
请注意,数据结构(一个简单的列表)是在 for 循环结束后 return 编辑的,这样它包含您的所有值。
append(i) 是一个内置方法,它会自动将元素 i 放在列表的末尾。
打印时不带括号或逗号:
the_list = function()
for elem in the_list:
print(elem, end=" ")
输出:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
基本上,您只是读取第一个元素,打印它,读取第二个元素,打印它,依此类推...
您可以使用 yield
创建生成器:
def function():
for i in range(1, 21):
yield i
print(*function(), sep=' ')
输出:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
我理解“return”在打印执行整个函数时“满足”时停止。也就是说,我永远无法使用 return 获得相同的行为。如果以后不行,为什么初学者要用打印来学习?
如果我写:
for i in range(1, 4):
print(i)
我得到: 1个 2个 3个 . 但是如果我写:
def function():
for i in range(1, 4):
return i
print(function())
我得到: 1
如何有相同的行为?通常我想在我的函数中循环,我不想要第一个值。
#Edit :我尝试使用 return 创建列表,但仍然无法正常工作:
keys = []
values = []
def asking():
for i in range(1, 21):
keys.append(i)
#return keys #works fine here, keys is 1 to 21
values = ["_"]
vide2 = dict(zip(keys, values))
return vide2
print(asking())
我得到了:{1:'_'}
您必须在函数内部创建一个数据结构并 return 它,这是 return 多于一个值的唯一方法。
def function():
my_list = []
for i in range(1, 21):
my_list.append(i)
return my_list
请注意,数据结构(一个简单的列表)是在 for 循环结束后 return 编辑的,这样它包含您的所有值。
append(i) 是一个内置方法,它会自动将元素 i 放在列表的末尾。
打印时不带括号或逗号:
the_list = function()
for elem in the_list:
print(elem, end=" ")
输出:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
基本上,您只是读取第一个元素,打印它,读取第二个元素,打印它,依此类推...
您可以使用 yield
创建生成器:
def function():
for i in range(1, 21):
yield i
print(*function(), sep=' ')
输出:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20