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

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

上一篇 下一篇

我有一个很长的查询。我想在 Python 中将其分成几行。在 JavaScript 中做到这一点的一种方法是使用几个句子并将它们与运算符连接起来(我知道,也许这不是最有效的方法,但我并不真正关心这个阶段的性能,只是代码可读性)。例:+

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

我尝试在 Python 中做类似的事情,但它不起作用,所以我曾经拆分长字符串。但是,我不确定这是否是唯一/最好/最pythonicic的方法。看起来很尴尬。
实际代码:

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

分割线

网友回答:

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

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 注入安全风险,因此请使用数据库的参数化查询功能来防止这种情况。但是,我将答案保持原样,因为它直接回答了提出的问题。

分割线

网友回答:

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

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

您也可以使用单引号(其中 3 个当然在开头和结尾),并像对待任何其他字符串一样对待生成的字符串。s

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

即:

' this is a veryn        long string if I had then        energy to type more and more ...'

最后,还可以像这样在 Python 中构造长行:

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

其中不包括任何额外的空格或换行符(这是一个故意的例子,显示了跳过空白将导致的效果):

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

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

分割线

网友回答:

打破界限对我有用。下面是一个示例:

longStr = "This is a very long string " 
        "that I wrote to help somebody " 
        "who had a question about " 
        "writing long strings in Python"

模板简介:该模板名称为【如何将长字符串的定义拆分为多行?】,大小是暂无信息,文档格式为.编程语言,推荐使用Sublime/Dreamweaver/HBuilder打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【Python】栏目查找您需要的精美模板。

相关搜索
  • 下载密码 lanrenmb
  • 下载次数 185次
  • 使用软件 Sublime/Dreamweaver/HBuilder
  • 文件格式 编程语言
  • 文件大小 暂无信息
  • 上传时间 02-21
  • 作者 网友投稿
  • 肖像权 人物画像及字体仅供参考
栏目分类 更多 >
热门推荐 更多 >
html5 微信模板 微信公众平台 单页式简历模板 企业网站 微信图片 微信素材 微信文章 响应式 自适应
您可能会喜欢的其他模板