2011-12-20 16 views
25

私はpythonで本当に長い文字列を持っている:文字列は複数行にまたがることからPythonで長い文字列を宣言するには?

long_string = ' 
this is a really 
really 
really 
long 
string 
' 

しかし、Pythonは文字列としてこれを認識しません。これをどうやって解決するのですか?

+1

"" "..." "" 'に入れてください。 '" "" long-long-string "" "' – khachik

+0

ドキュメント文字列には3重引用符は予約されていませんか? – ffledgling

+2

@ffledglingドキュメントの文字列に使用される複数行の文字列に予約されています – Winand

答えて

32
long_string = ''' 
this is a really 
really 
really 
long 
string 
''' 

"""と同じことをします。あなたは、文字列の内部に空白をよりよく制御しているので、あなたも素敵である、これを行うことができます

long_string_that_has_linebreaks = '''foo 
this is really long 
''' 
+3

文字列の行をインデントするとコードが読みやすくなり、結果として得られる文字列のインデントを削除するのに 'dedent'を使用できます。 – IanS

20

あなたはどちらか

long_string = 'fooo' \ 
'this is really long' \ 
'string' 

を使用したりすることができます

long_string = (
    'Lorem ipsum dolor sit amet, consectetur adipisicing elit, ' 
    'sed do eiusmod tempor incididunt ut labore et dolore magna ' 
    'aliqua. Ut enim ad minim veniam, quis nostrud exercitation ' 
    'ullamco laboris nisi ut aliquip ex ea commodo consequat. ' 
    'Duis aute irure dolor in reprehenderit in voluptate velit ' 
    'esse cillum dolore eu fugiat nulla pariatur. Excepteur sint ' 
    'occaecat cupidatat non proident, sunt in culpa qui officia ' 
    'deserunt mollit anim id est laborum.' 
) 
+4

また、最初のオプションでは、文字列を丸めたカッコがある場合は、バックスラッシュは必要ありません。しかし、文字列の連結を使用すると大きな欠点に気づくでしょう。スペースを本当に気にしない限り、 '' fooothisは本当に長いストリングです。 ''おそらくあなたが望むものではありませんでした。 – Duncan

66

改行が必要な場合は

+2

実際、これは1つの要素を持つタプルを作成したいときに遭遇したことの1つです; – plaes

+0

これは文字列ではない評価値が必要なときには機能しません。一般的に、リストの理解を使用して複雑なデータを文字列に埋め込む場合、私はこのような表現をこの文字列定義スタイルと組み合わせる方法を見出していません。 :( – ThorSummoner

+0

long_string = textwrap.dedent( '' 'ロング文字列、インデントされた各行は' '')https://docs.python.org/3/library/textwrap.html#textwrap.dedent – moorecm

4

私はこのように動作させることもできました。

long_string = '\ 
this is a really \ 
really \ 
really \ 
long \ 
string\ 
' 

このように複数行の文字列を構成する方法については、オンラインでは参照できません。それが正しいかどうかわかりません。私の疑問は、バックスラッシュのためにpythonが改行を無視しているということですか?たぶん誰かがこれについて光を当てることができます。

+1

また、崇高なテキスト(ビルド3114)は、これを強調する構文に問題があるようです。 –

関連する問題