【问题标题】:python replace a word with empty line or append a new line after the wordpython用空行替换单词或在单词后追加新行
【发布时间】:2015-08-24 17:22:29
【问题描述】:

如何在单词后添加空行或如何将短语拆分为特定单词的段落格式并将其值分配给另一个字符串

input: "hello"

output: "hello"
        #empty line


input : "hello this is test"   #after hello i want to split the data into new line

output : "hello   
    this is test" #New line and tab

我的代码:

string = "hello this is test"  
string2 = string.replace("hello","hello \n\t")

但我的输出是

"'hello \n\t this is test'"

但是当我这样做时:

print(string2) 

我的结果是我需要的格式

"hello   
   this is a test"

问题:
如何在不打印字符串的情况下做到这一点?

【问题讨论】:

  • 你的字符串很好 - 当你在 Python 解释器中输入一个表达式时,它会显示值的 representation\n\t 是 Python 的 representation 用于换行符和制表符。您的字符串是正确的,只需将其写入文件,通过网络发送或做任何您想做的事情。
  • 你的代码就是你所需要的,字符串中的换行符由\n定义,制表由\t定义,只有当你打印它们时,它们才会被解释为输出格式。

标签: python replace newline


【解决方案1】:

您的代码很好。如果将其用作变量或将其存储在文本文件中,您将获得预期的输出。 但是,当您执行命令string2 = string.replace("hello","hello \n\t") 时,Python 会在完全解释之前打印出 it 看到字符串的方式。换句话说,它打印值的字符表示。继续使用变量——它将显示您需要的结果,只需忽略 string2 = 命令的不需要的输出。 您可以在此处阅读有关 Python 表示的更多信息:

http://satran.in/2012/03/14/python-repr-str.html

编码愉快,祝你好运!

【讨论】:

    【解决方案2】:

    答案:
    由于 python 存储字符串的方式,你真的不能不打印这个。

    为什么:当您在字符串中放置换行符 "\n" 时,python 不会考虑这一点,直到您想要实际解释字符串。

    发生这种情况是因为在解释字符串期间,"\"用作转义字符,告诉 python 查看下一个字符。

    在您实际执行此解释之前,python 仅将字符串的值保存在变量中,在本例中为 string2 = "hello \n\t this is test",并且它不解释它,因此不查看转义字符,并且因此,python 不会显示您可能期望的格式。

    一旦您实际 print(string2),python 就会解释字符串并看到转义字符并按预期工作。

    结论:
    您的代码中没有错误,您应该能够处理与现在完全相同的字符串。

    【讨论】:

    • 是的,我的代码工作正常,但格式不匹配(我所期望的)。有什么方法可以将打印值分配给其他字符串 ex: string3 = print(string2)
    • @rohitgowtham 你能解释一下格式不匹配是什么吗?不幸的是,实际上没有办法让字符串的值在其中表达换行符,在打印之前它总是显示为“\n”。但这绝不应该引发问题,因为这就是所有带换行符的字符串的工作方式。
    猜你喜欢
    • 1970-01-01
    • 2020-03-27
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 2017-07-23
    • 2020-09-14
    • 2014-03-11
    相关资源
    最近更新 更多