[解決済み] 複数行の文字列の適切なインデント?
2022-03-19 19:42:57
質問
Pythonの関数内の複数行の文字列の適切なインデントとは?
def method():
string = """line one
line two
line three"""
または
def method():
string = """line one
line two
line three"""
なのか、それとも別の何か?
最初の例で、関数の外に文字列がぶら下がっているのは、なんだか変な感じがします。
解決方法は?
と並べたいのでしょう。
"""
def foo():
string = """line one
line two
line three"""
改行や空白は文字列自体に含まれているので、後処理をする必要があります。もし、そんなことをしたくない、テキストが大量にある場合は、テキストファイルに別途保存しておくとよいでしょう。もしテキストファイルがあなたのアプリケーションにとってうまく機能せず、後処理をしたくないのであれば、私ならおそらく
def foo():
string = ("this is an "
"implicitly joined "
"string")
複数行の文字列を後処理して不要な部分を切り出したい場合には
textwrap
モジュール、または
PEP 257
:
def trim(docstring):
if not docstring:
return ''
# Convert tabs to spaces (following the normal Python rules)
# and split into a list of lines:
lines = docstring.expandtabs().splitlines()
# Determine minimum indentation (first line doesn't count):
indent = sys.maxint
for line in lines[1:]:
stripped = line.lstrip()
if stripped:
indent = min(indent, len(line) - len(stripped))
# Remove indentation (first line is special):
trimmed = [lines[0].strip()]
if indent < sys.maxint:
for line in lines[1:]:
trimmed.append(line[indent:].rstrip())
# Strip off trailing and leading blank lines:
while trimmed and not trimmed[-1]:
trimmed.pop()
while trimmed and not trimmed[0]:
trimmed.pop(0)
# Return a single string:
return '\n'.join(trimmed)
関連
-
Pythonによるjieba分割ライブラリ
-
[解決済み] for'ループでインデックスにアクセスする?
-
[解決済み] なぜパスワードにはStringではなくchar[]が好まれるのですか?
-
[解決済み] JavaScriptで複数行の文字列を作成する
-
[解決済み] 最小限の驚き」と「変更可能なデフォルトの引数
-
[解決済み] 最近のPythonでカスタム例外を宣言する適切な方法?
-
[解決済み] 文字列フォーマット:% vs. .format vs. f-stringリテラル
-
[解決済み] Pythonのsuper()は多重継承でどう動くのか?
-
[解決済み] Javaは複数行の文字列をサポートしていますか?
-
[解決済み】forループを使った辞書の反復処理
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Pythonによるjieba分割ライブラリ
-
Python 可視化 big_screen ライブラリ サンプル 詳細
-
Python 入出力と高次代入の基礎知識
-
Pythonの画像ファイル処理用ライブラリ「Pillow」(グラフィックの詳細)
-
FacebookオープンソースワンストップサービスpythonのタイミングツールKats詳細
-
[解決済み】OSError: [WinError 193] %1 は有効な Win32 アプリケーションではありません。
-
[解決済み】numpy: true_divide で無効な値に遭遇
-
[解決済み】ImportError: PILという名前のモジュールがない
-
[解決済み】socket.error: [Errno 48] アドレスはすでに使用中です。
-
[解決済み] 複数行の長い文字列を作成するためのPythonicな方法