【问题标题】:Why does the output keep returning a 'None' value at the last?为什么输出最后一直返回“无”值?
【发布时间】:2020-09-17 09:06:02
【问题描述】:
def range_test(start, end):
    while start <= end:
        print(start)
        start+=1

print(range_test(1,5))

输出:

1
2
3
4
5
None

Process finished with exit code 0

【问题讨论】:

  • range_test 没有返回值,这就是它导致 None 的原因

标签: python function range output nonetype


【解决方案1】:

您说要打印range_test 的输出,但您没有返回任何值。

要解决这个问题,只需删除打印并运行range_test(1, 5)

【讨论】:

    【解决方案2】:

    末尾的Nonerange_test 返回的None。改成:

    def range_test(start, end):
        while start <= end:
            print(start)
            start+=1
    
    range_test(1,5)  # this function already prints, no need to print its return
    

    或者,如果您希望 range_test 返回您可以打印的内容(而不是自己进行打印并且不返回任何内容),请执行以下操作:

    def range_test(start, end):
        to_print = ""
        while start <= end:
            to_print += f"{start}\n"
            start+=1
        return to_print
    
    print(range_test(1,5))
    

    【讨论】:

      【解决方案3】:

      您没有在代码中定义 return 值,因此默认情况下它返回 None。调用print(func) 打印返回值。如果您执行以下任一操作,它将正常显示:

      def range_test(start, end):
          while start <= end:
              print(start)
              start+=1
      
      range_test(1,5)
      
      def range_test(start, end):
          range_list = []
          while start <= end:
              range_list.append(start)
              start+=1
          return "\n".join(range_list)
      range_test(1,5)
      

      【讨论】:

        猜你喜欢
        • 2016-05-07
        • 2020-02-07
        • 2011-06-03
        • 2015-05-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多