Python Sprintf: Python の書式付き文字列

Zeeshan Afridi 2023年6月21日
  1. Python でフォーマットされた文字列
  2. Python でフォーマットされた文字列のさまざまな方法
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 Afridi
Zeeshan Afridi avatar Zeeshan Afridi avatar

Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.

LinkedIn

関連記事 - Python String