我想返回列表的最终值new_list [3],但最后不返回任何值。我可以使用打印功能来获取new_list [3]的最终值。我对返回函数感到困惑。 2 for循环结束时是否可能返回new_list [times]?
original_list = [100,300,400,900,1500]
def filter_list(_list,times):
L = len(_list)
new_list = [list(_list) for k in range(times+1)]
for k in range (0,times):
for j in range (0,L):
if j == 0: #exclude the term [j-1] because new_list[-1] is not exist
new_list[k+1][j] = int(new_list[k][j]*0.2 + new_list[k][j+1]*0.5)
elif j == L-1: #exclude the term [j+1] because new_list[L] is not exist
new_list[k+1][j] = int(new_list[k][j-1]*0.4 + new_list[k][j]*0.2)
else:
new_list[k+1][j] = int(new_list[k][j-1]*0.4 + new_list[k][j]*0.2 + new_list[k][j+1]*0.5)
return (new_list[times])
filter_list(original_list,3)
答案 0 :(得分:1)
一个函数能够将一个值“返回”到调用它的作用域。如果未存储此变量或将其传递给另一个函数,则它将丢失。
例如:
def f(x): 返回x + 1 f(5)
将不会打印任何内容,因为对6
调用返回的f(5)
没有任何作用。
要输出从函数返回的值,我们可以将其传递给print()
函数:
print(f(5))
或您的情况:
print(filter_list(original_list, 3))
答案 1 :(得分:1)
这是返回函数的作用:
return语句结束函数调用的执行,并将结果(即return关键字后面的表达式的值)“返回”给调用者。如果return语句不带表达式,则返回特殊值None。
答案 2 :(得分:0)
您要退货但未将其分配给任何东西
x = filter_list(original_list,3)
print(x)
在这种情况下,x
会将您从函数调用返回的所有内容分配给变量,然后变量将保留您现在返回的所有内容
这里有一个简单的模型可以对此进行可视化
def something():
x = 1
return x
def something_print():
x = 1
return print(x)
a = something()
print(a)
something_print()
(xenial)vash@localhost:~/python/stack_overflow$ python3.7 fucntion_call.py 1 1