下面的代码:
text = input('Enter your text: ')
if len(text) >= 16:
text = text.replace(' ', '\n')
print(f'Your new text is:\n{text}')
如果用户输入blah blah blah blah
,则用户将获得以下输出:
Your new text is:
blah
blah
blah
blah
我只是想知道如何让我的代码在16个字符标记之前的最后一个可用空间之后添加一个新行,所以输出应该是:
Your new text is:
blah blah blah
blah
我对python还是个新手,我觉得我缺少一些可以完成这个任务的方法。
6条答案
按热度按时间doinxwow1#
出现最初问题的原因是
text = text.replace(' ', '\n')
将用换行符替换所有空格。此外,如果用户输入的字符串非常长,则当前答案将不起作用-第二个
print()
可能导致一行超过16个字符。例如:为了让它可以处理任意长的用户输入,我建议使用一个循环:
yc0p9oo02#
csbfibhn3#
我会使用
rindex
来搜索空格的最后一次出现,然后记住索引位置,因为Python中的字符串是immutable,所以我只需要在中间加上一个\n
来构造一个新的字符串,如下所示:zzoitvuj4#
我可以在这里建议一个基于正则表达式的方法:
这将打印:
这里的策略是贪婪地匹配最多16个字符,然后断开空白字符,然后添加一个换行符进行替换。
qgelzfjb5#
x759pob26#
您可以使用以下代码将其限制为前16个字符: