这听起来像是一个初学者的问题,但我从来没有成功地在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."
# WRONG WAY C : string_C displays well but makes my code ugly because it breaks indentation
string_C = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed\
do eiusmod tempor incididunt ut labore et dolore magna aliqua."
# WRONG WAY D : string_D (triples quotes) has the same problem than string_B (unwanted spaces)
string_D = '''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)
我错过了什么吗?
Nig*_*nel 13
我会选择:
def pr():
# parentheses are for grouping and (as a bonus) for a pretty indentation
s = ("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb")
print s
Run Code Online (Sandbox Code Playgroud)
彼此相邻的两个字符串文字会自动连接; 上面的第一行也可以写成word ='Help''A'; 这仅适用于两个文字,而不是任意字符串表达式.
>>> s = 'a' 'b'
>>> s
'ab'
>>> s = 'a''b' # space is not necessary
>>> s
'ab'
Run Code Online (Sandbox Code Playgroud)
附注:在编译到字节码期间执行串联:
>>> import dis
>>> dis.dis(pr)
0 LOAD_CONST 1 ('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb')
Run Code Online (Sandbox Code Playgroud)
这个连接传统可能来自C:
// prints "hello world"
#include <stdio.h>
int main(int argc, char **argv) {
printf("hello" " world");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
你可以试试:
string = "sdfsdfsdfsdfsdf" \
"sdfsdfsdfsdfs"
Run Code Online (Sandbox Code Playgroud)
结果如下:
>>> string
'sdfsdfsdfsdfsdfsdfsdfsdfsdfs'
Run Code Online (Sandbox Code Playgroud)
使用\paranthesis 而不是像@Nigel Tufnel在他的回答中提到的那样,可以达到同样的效果.
| 归档时间: |
|
| 查看次数: |
586 次 |
| 最近记录: |