相关疑难解决方法(0)

Python 中字符串打印的自动换行

我有一个很长的字符串:

S='Hello\n i have a very very very very..... very very very very.... long Text!'
Run Code Online (Sandbox Code Playgroud)

打印此文本会创建一长行,我想将该行分成最大长度为 10 或 20 个字符的片段。我想打破界限并\n拥有\n包含在新字符串中。

我所希望的是:

Hello
i have a very 
very very very
..... very very 
very very.... 
long Text!
Run Code Online (Sandbox Code Playgroud)

python string lines

4
推荐指数
1
解决办法
4120
查看次数

有没有一种在Python中编写多行字符串的简洁方法?

这听起来像是一个初学者的问题,但我从来没有成功地在Python中以干净的方式编写长字符串.

以下是我列出的4种方法.他们似乎都不对我好.

def useless_func():
    # WRONG WAY A : string_A displays well but breaks the 80 char max PEP 8 recommandation
    string_A = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."

    # WRONG WAY B : string_B will create unwanted spaces between word 'sed' and 'do' when printed
    string_B = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed\
        do eiusmod tempor incididunt ut labore et dolore magna aliqua." …
Run Code Online (Sandbox Code Playgroud)

python python-2.7

3
推荐指数
2
解决办法
586
查看次数

ValueError 兼容性和多行字符串美学?

我正在尝试以简洁、简洁的方式编写 ValueError 消息:

    raise ValueError("Model Architecture Not Recognized. Please ensure that your model's filename contains either"
    """ "vgg" and "16" for a 16 layer VGG model, "vgg" and "19" for a 19 layer VGG model, or "nin" for a Network"""
    " In Network model. Note that filenames are not case sensitive.")   
Run Code Online (Sandbox Code Playgroud)

这对 Python 2.7 和 Python 3 都有效吗?有没有更好的方法来显示多行错误消息?+在用于错误消息的字符串之间不使用 a 是否有任何问题?

python error-handling

3
推荐指数
1
解决办法
3023
查看次数

使用多行字符串时的缩进

我有时需要使用多行字符串,但在嵌套块中。这有效,但可读性真的很差:

CONDITION1 = CONDITION2 = CONDITION3 = True

if CONDITION1:
    if CONDITION2:
        s = """jkljkj
dfkjslfds
sqjdlqkj"""
    elif CONDITION3:
        s = """azeazea
azeoiuaez
azeytzae
azetzae"""
Run Code Online (Sandbox Code Playgroud)

使用:

if CONDITION1:
    if CONDITION2:
        s = """jkljkj
               dfkjslfds
               sqjdlqkj"""
Run Code Online (Sandbox Code Playgroud)

(如Pythonic way to create a long multi-line string所建议的那样)不是一个选项,因为该字符串s将是:

jkljkj
               dfkjslfds
               sqjdlqkj
Run Code Online (Sandbox Code Playgroud)

带有不需要的左侧空格。

问题:如何在可读性好的嵌套块中使用多行字符串?

python string nested code-readability multilinestring

1
推荐指数
1
解决办法
954
查看次数

python整理列表理解

像Haskell这样的FP可以轻松绑定一个(var)名称,例如:

[(g y, h y) | x <- mylist, let y = f x]
Run Code Online (Sandbox Code Playgroud)

Python可能在以下位置执行此操作:

mylist = [f(x) for x in mylist]
mylist = [(g(y), h(y)) for y in mylist]
Run Code Online (Sandbox Code Playgroud)

Python 3.8中的Walrus赋值似乎是一种简化列表推导的技巧:

[(y := f(x), g(y), h(y)) for x in mylist]
Run Code Online (Sandbox Code Playgroud)

在这种情况下,到目前为止被认为是pythonic的方式是什么?

python

1
推荐指数
1
解决办法
76
查看次数