【问题标题】:Defined function keeps returning None, despite having a print() specified within the return line尽管在返回行中指定了 print(),但定义的函数仍然返回 None
【发布时间】:2021-01-24 21:46:07
【问题描述】:
import textwrap
def wrap(string, max_width):
    i = textwrap.wrap(string, width=max_width)
    print(i)
    z = print(*i, sep='\n')
    return z

string, max_width = 'ABCFSAODJIUOHFWRQIOJAJ', 4 
result = wrap(string, max_width) 
print(result)

我正在尝试编写一个代码来分隔列表中的字符串,然后将列表的每个部分打印为单独的行。它工作正常,直到最后一点,在运行代码后它仍然附加 None 。我尝试了各种方法,但我似乎无法强制我的定义避免None

【问题讨论】:

  • 您要返回什么? print 返回None
  • 我希望它停止返回 None。
  • z = print(*i, sep='\n') ,这将使z 总是None 这就是你要返回的内容
  • 试试print(print("hi"))——我想你会明白发生了什么
  • print 函数显示内容,但返回 None

标签: python function return


【解决方案1】:

print 返回None,通过返回它,您的wrap 函数也将返回None。您似乎想用换行符加入i

def wrap(string, max_width):
    i = textwrap.wrap(string, width=max_width)
    return '\n'.join(i)

【讨论】:

    【解决方案2】:

    你可以使用这个函数而不用 return ,试试这个

    def wrap(string, max_width):
       i = textwrap.wrap(string, width=max_width)
       print(i)
       print(*i, sep='\n')
       
    
    string, max_width = 'ABCFSAODJIUOHFWRQIOJAJ', 4 
    wrap(string, max_width)  ``` 
    
    
    
    
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-15
      • 1970-01-01
      • 2012-07-01
      • 1970-01-01
      • 2022-01-15
      • 1970-01-01
      • 2018-07-20
      • 1970-01-01
      相关资源
      最近更新 更多