首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以使用' print‘打印出python列表,但不能使用return

我可以使用' print‘打印出python列表,但不能使用return
EN

Stack Overflow用户
提问于 2019-09-28 22:59:08
回答 1查看 86关注 0票数 1

我无法使用return函数打印最终值。我的代码:

代码语言:javascript
复制
    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,它不能工作。错误是什么?

Image of successful print()

Image of unsuccessful return

EN

回答 1

Stack Overflow用户

发布于 2019-09-28 23:42:00

如果我正确理解了您的问题,如果您通过运行以下代码行来调用函数

代码语言:javascript
复制
filter_wave(original_wave_sample, 200)

您希望输出等于打印的变量new_wave

当您在正文中使用print()而不使用return语句打印变量时,变量将打印到屏幕上。如果使用return( new_wave ),则必须指定一个变量来存储返回的变量new_wave:

使用函数中的返回值(New_wave):

代码语言:javascript
复制
result = filter_wave(original_wave_sample, 200)
print(result)

完整示例:

代码语言:javascript
复制
 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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58147521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档