Python 使用返回和打印进行文本换行

Python 使用返回和打印进行文本换行,python,Python,您将获得一个字符串S和宽度w。 您的任务是将字符串S包装成一段宽度w。 输入格式 第一行包含一个字符串,S。 第二行包含宽度,w 样本输入 ABCDEFGHIJKLIMNOQRSTUVWXYZ 4 ABCD EFGH IJKL IMNO QRST UVWX YZ 样本输出 ABCDEFGHIJKLIMNOQRSTUVWXYZ 4 ABCD EFGH IJKL IMNO QRST UVWX YZ 我尝试了代码,但没有得到所需的结果。因为输出中有两条额外的线。 还要注意:代码中的最后4行是不

您将获得一个字符串
S
和宽度
w
。 您的任务是将字符串
S
包装成一段宽度
w
。 输入格式 第一行包含一个字符串,
S
。 第二行包含宽度,
w

样本输入

ABCDEFGHIJKLIMNOQRSTUVWXYZ
4
ABCD
EFGH
IJKL
IMNO
QRST
UVWX
YZ
样本输出

ABCDEFGHIJKLIMNOQRSTUVWXYZ
4
ABCD
EFGH
IJKL
IMNO
QRST
UVWX
YZ
我尝试了代码,但没有得到所需的结果。因为输出中有两条额外的线。 还要注意:代码中的最后4行是不可变的(不可更改)


您的想法是正确的,但是您没有在函数中构建一个字符串来返回主代码的调用代码以打印它

def wrap(string, max_width):
    y=max_width
    z=0
    return_string = ""   #Create an empty string that we will build as we go
    for i in range(0,len(string),y):
        return_string += string[0+z:y+z] + "\n"  #append the chars to the string with a new line
        z+=max_width
    return return_string

if __name__ == '__main__':
    string, max_width = input(), int(input())
    result = wrap(string, max_width)
    print(result)
这也可以写成一个列表,并加入新行

def wrap(string, max_width):
    return "\n".join([string[i:i+max_width] for i in range(0, len(string) - 1, max_width)])

您的想法是正确的,但是您没有在函数中构建一个字符串来返回主代码的调用代码以打印它

def wrap(string, max_width):
    y=max_width
    z=0
    return_string = ""   #Create an empty string that we will build as we go
    for i in range(0,len(string),y):
        return_string += string[0+z:y+z] + "\n"  #append the chars to the string with a new line
        z+=max_width
    return return_string

if __name__ == '__main__':
    string, max_width = input(), int(input())
    result = wrap(string, max_width)
    print(result)
这也可以写成一个列表,并加入新行

def wrap(string, max_width):
    return "\n".join([string[i:i+max_width] for i in range(0, len(string) - 1, max_width)])

试试这个,它有点小,也不太复杂

import textwrap

def wrap(string, max_width):
    text = textwrap.fill(string,max_width)
    return text

if __name__ == '__main__':
    string, max_width = input(), int(input())
    result = wrap(string, max_width)
    print(result)

试试这个,它有点小,也不太复杂

import textwrap

def wrap(string, max_width):
    text = textwrap.fill(string,max_width)
    return text

if __name__ == '__main__':
    string, max_width = input(), int(input())
    result = wrap(string, max_width)
    print(result)

你的实际结果是什么?使用图书馆似乎有点过分;您是否考虑过只解析字符串
S
?结果是:fang EFGH IJKL IMNO QRST UVWX YZ none您的想法很接近,但函数没有返回任何结果。您不想在函数中打印输出您想构建一个字符串返回,然后让行
print(result)
处理输出您的实际结果是什么?使用图书馆似乎有点过分;您是否考虑过只解析字符串
S
?结果是:fang EFGH IJKL IMNO QRST UVWX YZ none您的想法很接近,但函数没有返回任何结果。您不想在函数中打印输出—您想构建一个字符串以返回,然后让行
print(result)
处理outputimport textwrap string=“ABCDEFGHIJKLIMNOQRSTUVWXYZ”打印(textwrap.fill(string,4))#它也类似于import textwrap string=“abcdefghijklimnoqrstuvxyz”打印(textwrap.fill(string,4))#也很相似