在Python中换行:在参数字符串处断行

5 投票
3 回答
3123 浏览
提问于 2025-04-17 17:15

我有一个脚本,其中有一个很长的字符串参数被传递给一个函数:

parser = argparse.ArgumentParser(description='Auto-segments a text based on the TANGO algorithm (Rie Kubota Ando and Lillian Lee, "Mostly-Unsupervised Statistical Segmentation of Japanese Kanji Sequences" (Natural Language Engineering, 9(2):127-149, 2003)).')

我想把这个脚本中的行长度限制在79个字符,这就意味着需要在这个字符串的中间换行。简单地在79个字符处换行会导致这样的情况,这在语法上是错误的:

parser = argparse.ArgumentParser(description="Auto-segments a text based on 
    the TANGO algorithm (Rie Kubota Ando and Lillian Lee, 'Mostly-Unsupervis
    ed Statistical Segmentation of Japanese Kanji Sequences' (Natural Langua
    ge Engineering, 9(2):127-149, 2003)).")

PEP 8 提供了一些关于在不同位置换行的指导,但有没有办法在一个字符串参数的中间换行呢?

(还有一个相关但不太重要的问题:在(python)脚本中,如何在单词中间合理地换行自然语言文本?)

3 个回答

0

argparse 会自动调整描述字符串的格式,所以即使你使用带有多行和额外空格的字符串,结果也不会改变:

import argparse

parser = argparse.ArgumentParser(description='''Auto-segments a text based on the
    TANGO algorithm (Rie Kubota Ando and Lillian Lee, "Mostly-Unsupervised
    Statistical Segmentation of Japanese Kanji Sequences" (Natural Language
    Engineering, 9(2):127-149, 2003)).''')

args = parser.parse_args()

% test.py -h

usage: test.py [-h]

Auto-segments a text based on the TANGO algorithm (Rie Kubota Ando and Lillian Lee,
"Mostly-Unsupervised Statistical Segmentation of Japanese Kanji Sequences" (Natural
Language Engineering, 9(2):127-149, 2003)).

optional arguments:
  -h, --help  show this help message and exit
1

当然可以!请看下面的内容:

这个问题主要是关于如何在编程中处理一些常见的错误和问题。很多时候,程序在运行时可能会出现意想不到的情况,比如输入的数据不符合要求,或者程序的某个部分没有按预期工作。

为了让程序更稳定,我们可以使用一些技巧来捕捉这些错误。比如,使用“异常处理”机制,这就像是在给程序加一个安全网,当出现问题时,它不会直接崩溃,而是可以优雅地处理这些错误,给用户一个友好的提示。

另外,编写清晰的代码和注释也是非常重要的。这样即使是新手也能理解代码的逻辑,减少出错的机会。

总之,编程就像是搭建一个房子,基础要打牢,才能避免后续出现各种问题。希望这些小技巧能帮助你在编程的路上走得更顺利!

>>>longarg = "ABCDEF\
GHIJKLMNOPQRSTUVW\
XYZ"

>>>print longarg
ABCDEFGHIJKLMNOPQRSTUVWXYZ
5

字面字符串可以紧挨着写在一起,编译后会变成一个完整的字符串。所以:

parser = argparse.ArgumentParser(description="Auto-segments a text based on "
    "the TANGO algorithm (Rie Kubota Ando and Lillian Lee, 'Mostly-Unsupervised "
    "Statistical Segmentation of Japanese Kanji Sequences' (Natural Language "
    "Engineering, 9(2):127-149, 2003)).")

可以根据需要调整,使其适合80个字符。

撰写回答