当前位置: 首页 > 知识库问答 >
问题:

在多行中连接python中的字符串

陶炫明
2023-03-14

我有一些字符串要连接,结果字符串会很长。我还有一些要连接的变量。

如何组合字符串和变量,使结果成为多行字符串?

以下代码抛出错误。

str = "This is a line" +
       str1 +
       "This is line 2" +
       str2 +
       "This is line 3" ;

这个我也试过

str = "This is a line" \
      str1 \
      "This is line 2" \
      str2 \
      "This is line 3" ;

请建议一种方法。

共有3个答案

廖华翰
2023-03-14

Python不是php,你不需要把$放在变量名之前。

a_str = """This is a line
       {str1}
       This is line 2
       {str2}
       This is line 3""".format(str1="blabla", str2="blablabla2")
阎慈
2023-03-14

从Python 3.6开始,您可以使用所谓的格式化字符串(或f字符串)轻松地将变量插入字符串。只需在字符串前面添加一个f,并将变量写入花括号({})中,如下所示:

>>> name = "John Doe"
>>> f"Hello {name}"
'Hello John Doe'

要将长字符串拆分为多行,请使用括号(())或多行字符串(由三个引号包围的字符串""'而不是一个)。

字符串周围有圆括号,你甚至可以连接它们,而不需要在它们之间进行签名:

a_str = (f"This is a line \n{str1}\n"
         f"This is line 2 \n{str2}\n"
         "This is line 3") # no variable here, so no leading f

好消息:如果一行中没有变量,则该行不需要前导的f

很高兴知道:您可以在每行末尾使用反斜杠(\)而不是括号来存档相同的结果,但是对于PEP8,您应该更喜欢括号作为行继续:

通过将表达式括在括号中,可以在多行上打断长行。应该优先使用这些选项,而不是使用反斜杠作为行延续。

在不需要显式插入\n的多行字符串中,Python为您解决了以下问题:

a_str = f"""This is a line
        {str1}
        This is line 2
        {str2}
        This is line 3"""

很高兴知道:只要确保你正确地对齐你的代码,否则你会在每一行前面有空白。

顺便说一下:您不应该调用变量str,因为这是数据类型本身的名称。

格式化字符串的来源:

  • Python 3.6有什么新内容
  • PEP498
拓拔嘉运
2023-03-14

有几种方法。一个简单的解决方案是添加括号:

strz = ("This is a line" +
       str1 +
       "This is line 2" +
       str2 +
       "This is line 3")

如果要将每一“行”放在单独的行上,可以添加换行符:

strz = ("This is a line\n" +
       str1 + "\n" +
       "This is line 2\n" +
       str2 + "\n" +
       "This is line 3\n")
 类似资料:
  • 问题内容: 我试图在Python中连接字符串和数字。当我尝试这样做时,它给了我一个错误: 错误是: 为什么我不能做到这一点? 如何 可以 我将字符串和Python中的号码是多少? 问题答案: Python是强类型的。没有隐式类型转换。 您必须执行以下操作之一:

  • 本文向大家介绍如何在Python中用数字连接字符串?,包括了如何在Python中用数字连接字符串?的使用技巧和注意事项,需要的朋友参考一下 要用数字连接字符串,您需要使用str(number)将数字转换为字符串。例如, 在Python 2中,您还可以使用backtick(``)包围数字并使用数字和字符串获得相同的结果。请注意,反引号已从Python 3中删除。例如,

  • 问题内容: 我有四个字符串,其中任何一个都可以为空。我需要将它们连接成一个字符串,并在它们之间留有空格。如果我使用: 如果为空,结果将是新字符串开头的空白。另外,如果和为空,则我有三个空格。 当我不需要空格时,如何轻松地加入它们? 问题答案: 通过在调用中使用,它将删除所有虚假元素。

  • 问题内容: 我认为这是不可能的,但我想我要是有办法的话。我的想法是,我有一个用于Web资源文件夹路径的变量: 我得到这个结果: 但是,我希望将字符串合并为一个字符串,如下所示: 是否可以在Less中将字符串连接在一起? 问题答案: 使用变量插值 完整代码:

  • 问题内容: 我想知道操作员和操作员之间的速度差是多少。 那么两者的速度比较是多少? 问题答案: 来自:有效的字符串连接 方法1: 方法4: 现在,我意识到它们并不是严格的代表,第4种方法会在遍历和加入每个项目之前追加到列表中,但这是一个合理的指示。 字符串连接要比串联快得多。 为什么?字符串是不可变的,不能在原位置更改。要更改一个,需要创建一个新的表示形式(两者的串联)。

  • 问题内容: 我想在CSS中实现以下目标。我该如何在IE8 +中运行 问题答案: 您无法按照建议的方式进行动态字符串插值,但是如果属性的可能值数量有限,则可以为每个属性创建样式: 如果类型数量不合理,那么您可能需要提出一个比我这里列出的更好的解决方案。