Python Sprintf: Python の書式付き文字列
書式設定された文字列を出力する正確な sprintf
組み込み関数はありませんが、Python のおかげで、書式設定された文字列を出力するための多数のメソッドが存在します。
この記事では、%
演算子、format()
、f-string
、およびユーザー定義の sprintf
関数を含む、Python の 4つの sprintf
のような機能について説明します。 それ。
Python でフォーマットされた文字列
文字列の書式設定は、定義済みのテキストにカスタム値、文字列、または変数を挿入できる文字列補間としても扱われます。
これは、Python の sprintf
のような機能を提供する、いくつかの値や結果を含む文字列を出力するための、好ましい読みやすい方法の 1つです。
フォーマットされた文字列で数式を使用することもできます。 たとえば、2つの値があり、それらを追加して最終結果を出力したいとします。
コード例:
x = 3
y = 4
print(f"The sum of {x} and {y} = {x+y}") # formatted string
print("The sum of", x, "and", y, "=", (x + y)) # normal string
出力:
The sum of 3 and 4 = 7
The sum of 3 and 4 = 7
ご覧のとおり、上記の結果は同じですが、通常の文字列は非常にジャンキーです。 ただし、書式設定された文字列の方が読みやすく、開発者は書式設定された文字列を使用してコードを簡単に記述できます。
Python でフォーマットされた文字列のさまざまな方法
Pythons は、多様なオープン ソース コミュニティと継続的なサポートを備えた汎用プログラミング言語であり、仕事の性質や特定のシナリオに応じてさまざまな方法であらゆるタスクを達成するためのソリューションと機能を開発者に提供します。
フォーマットされた文字列を使用するのと同様に、この記事で 1つずつ説明するフォーマット文字列を印刷するために使用できるさまざまな方法があります。
%
演算子を使用した書式付き文字列
これは、Python やその他のプログラミング言語で書式設定された文字列の古い手法の 1つです。 Python では、文字列には %
演算子を使用してアクセスできる組み込み操作があり、C や C++ の springf
と同様に、文字列の書式設定を簡単に行うことができます。
コード例:
name = "Zeeshan Afridi"
msg = "Hey! developers, it's %s." % name
print(msg)
出力:
Hey! developers, it's Zeeshan Afridi.
上記のコードでは、%s
は、最後に文字列が必要であることをコンパイラに警告します。デモのように、%
演算子を使用して文字列を %name
として指定しています。
文字列の書式設定には、データ型ごとに異なる書式指定子があります。
フォーマット指定子 | データ・タイプ | 出力 |
---|---|---|
%c |
チャー | Unicode文字を示しています |
%d |
整数 | 整数 |
%f |
浮動小数点 | 10 進数 |
%o |
整数 (8 進数) | 8 進数 |
%s |
弦 | それは文字列を与える |
%t |
日時 | 日付と時刻 |
Python で format()
関数を使用して書式設定された文字列
format()
は、Python で文字列をフォーマットするための新しいメソッドで、Python 3 で導入されました。
これは、文字列内の書式指定子とその順序を覚えておく必要がない、文字列を書式設定するための新しいスタイルです。 代わりに、文字列の最後に format()
を使用して、指定された位置に引数を提供できます。
コード例:
program = "BSSE"
cgpa = 3.2
student = "Hi! I am a student of {}, and my CGPA is {}".format(program, cgpa)
print(student)
出力:
Hi! I am a student of BSSE, and my CGPA is 3.2
上記のプログラムでは、値を挿入する位置を波括弧 {}
で指定し、文字列 student
の最後に .format()
関数を使用して指定しました。 それに応じて 2つの引数。
Python の書式付き文字列リテラル f-string
整形済み文字列リテラル は f-string
としても知られており、構文がより読みやすく簡単な新しい文字列整形方法として Python 3.6 に含まれています。
f-string には、他のメソッドにはない優れた独自の機能があり、文字列内で式と値を定義できます。
文字列の最後に .format()
を使用する必要はありません。 以下の Python での f-String
の例を見てみましょう。
コード例:
my_fav_lang = "Python"
experience = 2
zeeshan = f"I love to code in {my_fav_lang}, and I have {experience} year experience in Python programming."
print(zeeshan)
出力:
I love to code in Python, and I have 2 years of experience in Python programming.
おお! f-string
は非常に簡単で読みやすいです。 他の 2つのメソッドとは異なり、他のメソッドやカンマを使用する必要はなく、文字列のプレフィックスとして f
を使用するだけで、準備完了です。
Python で sprintf
を使用する方法
sprintf
は string print を表します。 基本的に、これは C および C++ プログラミング言語の組み込み関数で、書式設定された文字列を出力し、出力を sprintf()
で指定された char
バッファに格納します。 また、Python には異なるが類似した方法があります。
sprintf
は Python のユーザー定義関数ではありませんが、StringIO
インスタンスをバッファーとして使用できます。 sprintf
とは異なり、buf.write
とフォーマット メソッドに文字列を渡す必要があります。 この場合、%
は文字列の書式設定に使用されます。
コード例:
import io
from io import StringIO
def sprintf(buf, fmt, *args):
buf.write(fmt % args)
age = 24
fav_color = "Blue"
buf = io.StringIO()
sprintf(buf, "I'm %d years old, and my favourite colour is %s!", age, fav_color)
print(buf.getvalue())
出力:
I'm 24 years old, and my favourite colour is Blue!
このプログラムで ImportError
が発生した場合は、コマンド ライン インターフェイス (CLI
) から必要な依存関係をインストールします。
Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.
LinkedIn