我无法使用return函数打印最终值。我的代码:
def filter_wave(wave,n):
new_wave = [i for i in wave]
for k in range(n):
for i in range(len(wave)):
curr_wave = new_wave.copy()
if(i==0):
new_wave[i] = int(curr_wave[i]*0.6+curr_wave[i+1]*0.2)
elif(i>0 and i<len(wave)-1):
new_wave[i] = int(curr_wave[i-1]*0.2+curr_wave[i]*0.6+curr_wave[i+1]*0.2)
else:
new_wave[i] = int(curr_wave[i-1]*0.2+curr_wave[i]*0.6)
print(new_wave)在迭代n次之后,它应该会返回最后一个波。print()可以工作,但如果我尝试return,它不能工作。错误是什么?
发布于 2019-09-28 23:42:00
如果我正确理解了您的问题,如果您通过运行以下代码行来调用函数
filter_wave(original_wave_sample, 200)您希望输出等于打印的变量new_wave
当您在正文中使用print()而不使用return语句打印变量时,变量将打印到屏幕上。如果使用return( new_wave ),则必须指定一个变量来存储返回的变量new_wave:
使用函数中的返回值(New_wave):
result = filter_wave(original_wave_sample, 200)
print(result)完整示例:
def filter_wave(wave,n):
new_wave = [i for i in wave]
for k in range(n):
for i in range(len(wave)):
curr_wave = new_wave.copy()
if(i==0):
new_wave[i] = int(curr_wave[i]*0.6+curr_wave[i+1]*0.2)
elif(i>0 and i<len(wave)-1):
new_wave[i] = int(curr_wave[i-1]*0.2+curr_wave[i]*0.6+curr_wave[i+1]*0.2)
else:
new_wave[i] = int(curr_wave[i-1]*0.2+curr_wave[i]*0.6)
return(new_wave)
result = filter_wave(original_wave_sample, 200)
print(result)https://stackoverflow.com/questions/58147521
复制相似问题