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

如何将长字符串的定义拆分为多行?

楚俊杰
2023-03-14

我有一个很长的问题。我想用Python把它分成几行。在JavaScript中实现这一点的一种方法是使用几个句子,并用操作符将它们连接起来(我知道,这可能不是最有效的方法,但我并不真正关心这一阶段的性能,只关心代码的可读性)。例子:

var long_string = 'some text not important. just garbage to' +
                      'illustrate my example';

我试着用Python做类似的事情,但没有成功,所以我用\来拆分长字符串。然而,我不确定这是否是唯一/最好/最好的方法。看起来很尴尬。实际代码:

    query = 'SELECT action.descr as "action", '\
        'role.id as role_id,'\
        'role.descr as role'\
        'FROM '\
        'public.role_action_def,'\
        'public.role,'\
        'public.record_def, '\
        'public.action'\
        'WHERE role.id = role_action_def.role_id AND'\
        'record_def.id = role_action_def.def_id AND'\
        'action.id = role_action_def.action_id AND'\
        'role_action_def.account_id = ' + account_id + ' AND'\
        'record_def.account_id=' + account_id + ' AND'\
        'def_id=' + def_id

共有3个答案

暴博远
2023-03-14

\断行对我来说很有用。下面是一个例子:

longStr = "This is a very long string " \
        "that I wrote to help somebody " \
        "who had a question about " \
        "writing long strings in Python"
琴琪
2023-03-14

如果不需要多行字符串,而只需要一个长的单行字符串,可以使用括号。只需确保字符串段之间不包含逗号(那么它将是一个元组)。

query = ('SELECT   action.descr as "action", '
         'role.id as role_id,'
         'role.descr as role'
         ' FROM '
         'public.role_action_def,'
         'public.role,'
         'public.record_def, '
         'public.action'
         ' WHERE role.id = role_action_def.role_id AND'
         ' record_def.id = role_action_def.def_id AND'
         ' action.id = role_action_def.action_id AND'
         ' role_action_def.account_id = '+account_id+' AND'
         ' record_def.account_id='+account_id+' AND'
         ' def_id='+def_id)

在像您正在构造的这样的SQL语句中,多行字符串也可以。但是如果多行字符串包含的额外空白是个问题,那么这将是实现您想要的东西的好方法。

如注释中所述,以这种方式连接SQL查询是一个等待发生的SQL注入安全风险,因此使用数据库的参数化查询功能来防止这种情况发生。但是,我将保持答案不变,因为它直接回答了所问的问题。

童琪
2023-03-14

你说的是多行字符串吗?简单,用三重引号开始和结束它们。

s = """ this is a very
        long string if I had the
        energy to type more and more ..."""

您也可以使用单引号(其中3个当然在开始和结束处),并像对待任何其他字符串一样对待结果字符串s

注意:与任何字符串一样,起始引号和结束引号之间的任何内容都将成为字符串的一部分,因此此示例具有前导空白(如@root45所指出的)。此字符串还将包含空格和换行符。

即。,:

' this is a very\n        long string if I had the\n        energy to type more and more ...'

最后,还可以在Python中构建长行,如下所示:

 s = ("this is a very"
      "long string too"
      "for sure ..."
     )

其中不包括任何额外的空格或换行符(这是一个经过深思熟虑的例子,说明跳过空格会产生什么效果):

'this is a verylong string toofor sure ...'

不需要逗号,只需将要连接在一起的字符串放在一对括号中,并确保考虑到任何需要的空格和换行符。

 类似资料:
  • 我有一个很长的问题。我想用Python把它分成几行。在JavaScript中实现这一点的一种方法是使用几个句子,并用一个操作符将它们连接起来(我知道,这可能不是最有效的方法,但我并不真正关心这一阶段的性能,只关心代码的可读性)。例子: 我尝试在Python中做类似的事情,但不起作用,所以我使用来拆分长字符串。但是,我不确定这是否是唯一/最佳/pythonicest的方法。看起来很尴尬。实际代码:

  • 问题内容: 有没有办法在不知道字符串长度的情况下,将一个字符长的字符串切成4个字符串,每个字符长? 例如: 问题答案:

  • 问题内容: 我有一张表,其中包含一列以可变长度定界的字符串,例如: 20,0,5 ,, ^ 24,0,0 ,, ^ 26,0,0 ,, ^ 281,0,0 ,, ^ 34,0,2 ,, ^ 48,0,2 ,, ^ 44, 0,2 ,, ^ 20,0,10 ,, ^ 20,5,5 ,, ^ 379,1,1 ,, ^ 26,1,2 ,, ^ 32,0,1 ,, ^ 71,0, 2,^ 我需要做的是拆分

  • 我有一个字符串和一个ArrayList。字符串中有几个单词,用空格隔开,例如“firstword second third”。我想将字符串拆分为几个部分,并将“piece”字符串添加到ArrayList中。

  • 问题内容: 将字符串拆分为流的 最佳 方法是什么? 我看到了这些变化: 我的优先事项是: 坚固性 可读性 性能 一个完整的可编译示例: 问题答案: / 由于返回数组,因此我始终建议您使用流式处理数组的规范用法。 / 是一个 varargs 方法,它恰好接受一个数组,这是由于varargs方法是通过数组实现的,并且在将varargs引入Java以及改型为接受可变参数的现有方法时,存在兼容性方面的问题

  • 问题内容: 我如何将字符串分成多行,如下所示? 问题答案: Swift 4包括对多行字符串文字的支持。除换行符外,它们还可以包含未转义的引号。 较早版本的Swift不允许您在多行上使用单个文字,但可以在多行上将文字添加在一起: