尽管在返回行中指定了 print() ,但已定义的函数仍然返回 None

时间:2021-01-24 21:46:07

标签: python function return

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

你可以不使用 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)  ```