Skip to main content
 首页 » 编程设计

python之为什么在 Python (\n) 中更改字符串中的行不起作用

2025年05月04日27lexus

在大多数情况下,它可以完成工作,但有时(我很难准确地说,它取决于什么)它会陷入无限循环,因为它不会对文本字符串进行切片。

def insertNewlines(text, lineLength): 
    """ 
    Given text and a desired line length, wrap the text as a typewriter would. 
    Insert a newline character ("\n") after each word that reaches or exceeds 
    the desired line length. 
 
    text: a string containing the text to wrap. 
    line_length: the number of characters to include on a line before wrapping 
        the next word. 
    returns: a string, with newline characters inserted appropriately.  
    """ 
 
    def spacja(text, lineLength): 
        return text.find(' ', lineLength-1) 
 
    if len(text) <= lineLength: 
        return text 
    else: 
        x = spacja(text, lineLength) 
        return text[:x] + '\n' + insertNewlines(text[x+1:], lineLength) 

适用于我尝试过的所有情况,除了

 insertNewlines('Random text to wrap again.', 5) 

和

insertNewlines('mubqhci sixfkt pmcwskvn ikvoawtl rxmtc ehsruk efha cigs itaujqe pfylcoqw iremcty cmlvqjz uzswa ezuw vcsodjk fsjbyz nkhzaoct', 38) 

我不知道为什么。

请您参考如下方法:

不要重新发明轮子,使用 textwrap library相反:

import textwrap 
 
wrapped = textwrap.fill(text, 38) 

您自己的代码无法处理未找到空间且 spacja 返回 -1 的情况。