当前位置: 首页 > 面试题库 >

创建长的多行字符串的Pythonic方法

东郭自珍
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

问题答案:

你在谈论多行字符串吗?容易,使用三引号将其开始和结束。

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中创建长的多行字符串?,包括了如何在Python中创建长的多行字符串?的使用技巧和注意事项,需要的朋友参考一下 为了创建多行字符串,我们使用三对来代替使用一对单引号/双引号。例如,  这将给出输出:  请注意,您不能使用此符号插入字符串。此符号也用于在Python中定义文档字符串。

  • 问题内容: 给出以下无害的小清单: 我的目标是使用以下方法之一以Python方式串联小恶魔: A. plain ol’string函数来完成工作,简短,没有导入 B.lambda,lambda,lambda C.全球化(什么都不做,什么都导入) 请提出其他蟒蛇般的方法来完成这项宏大的任务。 请对解决方案进行排名(python级别),并对解决方案进行评分,并给出简洁的解释。 在这种情况下,最Pyth

  • 问题内容: 我在Ruby中有以下代码。我想将此代码转换为JavaScript。JS中的等效代码是什么? 问题答案: 更新: ECMAScript 6(ES6)引入了一种新型的文字,即 模板文字 。它们具有许多功能,其中包括变量插值,但对于这个问题最重要的是,它们可以是多行的。 模板文字由 反引号 分隔: (注意:我不主张在字符串中使用HTML) 浏览器支持还可以,但是您可以使用编译器来更好地兼容。

  • 我的代码正在工作,但我认为这是一种糟糕的方法。(使用 system() 存在安全问题,并且仅仅因为不接受 ss.str() 而创建字符串)。你知道更好的方法吗? argv[2] 来自: int main (int argc, char *argv[]) {... 有更好的主意吗?

  • 问题内容: 将两个字符串网格化的最Python方式是什么? 例如: 输入: 输出: 问题答案: 对我来说,最pythonic *的方式是以下代码,它 几乎做同样的事情, 但是使用运算符来连接每个字符串中的各个字符: 它也比使用两个调用更快: 存在更快的方法,但是它们常常使代码模糊。 注: 如果两个输入字符串是 不 相同的长度,则较长的一个将被截断, 停在较短字符串的结尾迭代。在这种情况下,应该使用

  • 我想解组一个具有' 有没有办法在不使用替换/replace的情况下取消对字符串的排序?