【Python】三連ダブルクォーテーションの文字列でインデントが入る件の解決
Pythonでは改行を伴う文字列を簡単に入力したいとき、三連ダブルクォーテーションで囲むことで宣言することができます。こんな感じ。
long_str = """\
こんにちは
ご機嫌いかがですか?
私は元気です。
"""
ところが、例えばこれが関数の中で定義されていると、こんな感じでインデントが入った文字列になってしまう。
def long_str_test():
long_str = """\
こんにちは
ご機嫌いかがですか?
私は元気です。
"""
print(long_str)
#【結果】
# こんにちは
# ご機嫌いかがですか?
# 私は元気です。
これを解決するには、textwrapモジュールをimportし、dedentメソッドを利用します。
【コード】
import textwrap
def format_test():
test_str = """\
1
2
3
4
5
"""
print(test_str)
print('############################\n')
dedented_text = textwrap.dedent(test_str)
print(dedented_text)
format_test()
【結果】
1
2
3
4
5
############################
1
2
3
4
5
【余談】
無事解決。
しかし、これだけのためのインポートを行い、dedentのメソッドを利用するなら、三連ダブルクォーテーションを利用しなくても良いんじゃないかという気がする。
ここでバグが生まれても勿体ないし。
何かいい方法があれば教えてください。
この記事が気に入ったらサポートをしてみませんか?