str【文字列型】3.0~3.3 / 3.6~3.93.12
メモ ( 概要 文字列作成 比較演算 シーケンス演算 書式化 ) コンストラクタ・メソッド 一覧
メモ
概要
- Unicode 文字列 3.0
- イミュータブル (不変) シーケンス
- 組み込み関数の str( ) は、文字列型のコンストラクタ
- 複雑な操作については、re【正規表現】 も参照
- 整数値の3桁区切り等は、 format【書式化】・int【整数型】の 変換 参照
- f-string【フォーマット済み文字列リテラル】 3.6 で書式化は簡略
文字列作成
- コンストラクタ
- 文字列リテラル (間に空白のみの場合、結合)
引用符 備考 '~' 【シングルクォート1個】 一般的な文字列 ダブルクォート (") の記述が可能 "~" 【ダブルクォート1個】 シングルクォート (') の記述が可能 '''~''' 【シングルクォート3個】 改行を含めそのまま記述可能な文字列
ドキュメンテーション文字列でも使用ダブルクォート (") の記述が可能 """~""" 【ダブルクォート3個】 シングルクォート (') の記述が可能 プレフィックス 備考 省略 unicode リテラル 3.0 r・R raw 文字列 (エスケープシーケンスは無効) u・U 3.3 unicode 文字列 (互換用) f・F 3.63.8 フォーマット済み文字列リテラル (実行時に式を評価) fr・fR・Fr・FR
rf・rF・Rf・RFr【raw 文字列】と
f【フォーマット済み文字列リテラル】の組合せ
比較演算
- 連鎖可能 ( x < y < z )
演算 備考 < より小さい <= 以下 > より大きい >= 以上 == 等しい != 等しくない is 同一オブジェクト
(実装依存の為、None との比較でのみ使用)is not 同一オブジェクトでない
(実装依存の為、None との比較でのみ使用)
シーケンス演算
- (外部リンク: 共通のシーケンス演算)
演算 備考 x in s 文字列 s のある要素が文字列 x と等しければ True 、等しくなければ False x not in s 文字列 s のある要素が文字列 x と等しければ False 、等しくなければ True s + t 文字列 s と 文字列 t の結合 s * n
n * s文字列 s を n 回結合 s[i ] 文字列 s の i 番目の要素 s[i :j ] 文字列 s の i 番目から j 番目までの要素 s[i :j :k ] 文字列 s の i 番目から j 番目までの k 番目毎の要素 len(s ) 文字列 s の長さ max(s ) 文字列 s の最大要素 min(s ) 文字列 s の最小要素 s.index(x [, i [, j ]]) 文字列 s 中で 文字列 x が最初に出現する位置インデックス (位置インデックス i ~ j)
未検出:ValueError 例外s.count(x ) 文字列 s 中に 文字列 x が出現する回数
書式化
書式化 | 備考 |
---|---|
format【書式化】2.6 format_map【書式化 (マッピング)】3.2 | Python 2.6 で実装 % 演算子【printf 形式書式化】の置き換えを意図 |
f-string【フォーマット済み文字列リテラル】 3.63.83.12 | Python 3.6 で実装 format【書式化】の冗長性を解消 |
% 演算子【printf 形式書式化】 | Python 1.0 で実装 C 言語の sprintf() に相似 型が限定的 |
format【書式化 (組み込み関数)】 | |
string.Template【テンプレート文字列】 |
関連
外部リンク
コンストラクタ・メソッド一覧
コンストラクタ
構文
class str(object='')
class str(object=b'', encoding='utf-8', errors='strict')
objectオブジェクト
encodingエンコード (指定値については、encode【エンコード】参照)
errors変換不可エラー処理 (指定値については、encode【エンコード】参照)
例
upper【大文字変換】
lower【小文字変換】
swapcase【大小文字切替】
casefold【小文字変換 (特殊文字対応)】3.3
メモ
- 文字列内の文字を 大文字 または 小文字 に変換
メソッド 備考 upper【大文字変換】 全ての文字を大文字に変換 lower【小文字変換】 全ての文字を小文字に変換 swapcase【大小文字切替】 大小文字を切替 casefold【小文字変換 (特殊文字対応)】3.3 全ての文字を小文字に変換 (特殊文字を含む)
(比較で使用) - 関連
構文
str.upper()
str.lower()
str.swapcase()
str.casefold() 3.3
戻り値変換後の文字列
例
capitalize【先頭大文字変換】3.8
title【タイトルケース変換】
メモ
- 文字列内の文字を位置により、大文字 または 小文字 に変換
メソッド 備考 capitalize【先頭大文字変換】 先頭のみ大文字、他は小文字に変換
(二重音字・合字等:全て大文字先頭のみ大文字 3.8 )title【タイトルケース変換】 単語の先頭を大文字、他は小文字に変換 (アポストロフィも単語の区切り) - 関連
構文
str.capitalize()
str.title()
戻り値変換後の文字列
例
isupper【大文字判定】
islower【小文字判定】
istitle【タイトルケース判定】
メモ
- 各種大小文字の判定
メソッド 備考 isupper【大文字判定】 全ての文字が大文字か否か (1個以上の大文字が必要) islower【小文字判定】 全ての文字が小文字か否か (1個以上の小文字が必要) istitle【タイトルケース判定】 単語の先頭が大文字で他は小文字か否か (1個以上の大文字が必要) - 関連
構文
str.isupper()
str.islower()
str.istitle()
戻り値判定結果 (True / False)
例
isascii【ASCII 判定】3.7
isalpha【レター文字判定】
isalnum【レター文字・数字判定】
メモ
- 各種文字の判定
メソッド 備考 isascii【ASCII 判定】 空文字列 または 全ての文字が ASCII (U+0000 ~ U+007F) か否か isalpha【レター文字判定】 1個以上の全ての文字がレター文字か否か (主に数字や記号以外、英字に限定されない)
Unicode 文字データベースの Letter で下記のカテゴリ
Lm (Letter, Modifier):修飾文字
Lt (Letter, Titlecase):タイトルケース文字
Lu (Letter, Uppercase):大文字
Ll (Letter, Lowercase):小文字
Lo (Letter, Other):その他文字 (ひらがな・カタカナ・漢字を含む)isalnum【レター文字・数字判定】 1個以上の全ての文字がレター文字・数字か否か (主に記号以外、英字に限定されない)
全ての文字が下記の何れかで True
isalpha【レター文字判定】
isdecimal【数字判定 (10進数字)】
isdigit【数字判定 (10進数字 + 修飾10進数字)】
isnumeric【数字判定 (10進数字 + 修飾10進数字 + その他数字)】 - 関連
構文
str.isascii() 3.7
str.isalpha()
str.isalnum()
戻り値判定結果 (True / False)
例
isdecimal【数字判定 (10進数字)】
isdigit【数字判定 (10進数字 + 修飾10進数字)】
isnumeric【数字判定 (10進数字 + 修飾10進数字 + その他数字)】
メモ
- 数字の判定
メソッド おおよその範囲・仕様 isdecimal
【数字判定 (10進数字)】アラビア数字 (0 ~ 9) 系統の数字
仕様:カテゴリ Nd (Number, Decimal Digit)isdigit
【数字判定 (10進数字 + 修飾10進数字)】上記に加え、修飾された 9 までの数字 (丸数字・丸括弧数字 等)
仕様:プロパティ値 Numeric_Type=Digit または Decimalisnumeric
【数字判定 (10進数字 + 修飾10進数字 + その他数字)】上記に加え、その他数字 (ローマ数字・漢数字・分数・10以上の数字 等)
仕様:プロパティ値 Numeric_Type=Digit または Decimal または Numeric - 関連
構文
str.isdecimal()
str.isdigit()
str.isnumeric()
戻り値判定結果 (True / False)
例
isspace【空白判定】
isprintable【印字可能判定】
isidentifier【識別子判定】
メモ
- 空白・印字可能・識別子の判定
メソッド 備考 isspace【空白判定】 1個以上の全ての文字が空白文字か否か
仕様:
定義が "Other" または "Separator"
双方向プロパティが "WS" または "B" または "S"isprintable【印字可能判定】 空文字列 または 1個以上の全ての文字が印字可能か否か
仕様:
定義が "Other" または "Separator" 以外 (Space:0x20 を除く)isidentifier【識別子判定】 有効な識別子か否か
(予約済み識別子の判定:keyword.iskeyword【キーワード判定】) - 関連
構文
str.isspace()
str.isprintable()
str.isidentifier()
戻り値判定結果 (True / False)
例
center【中央揃え】
rjust【右揃え】
zfill【ゼロパディング】
メモ
- 中央揃え・右揃え・ゼロパディングに変換
メソッド 備考 center【中央揃え】 中央揃え (パディング文字の指定が可) rjust【右揃え】 右揃え (パディング文字の指定が可) zfill【ゼロパディング】 ゼロパディング (符号付きは符号の後ろ) - 関連
構文
str.center(width [, fillchar])
str.rjust(width [, fillchar])
str.zfill(width)
戻り値変換後の文字列 (長さ以下の場合、元の文字列)
width長さ
fillcharパディング文字 (デフォルト:半角スペース[0x20])
例
strip【両側文字集合削除】
lstrip【左側文字集合削除】
rstrip【右側文字集合削除】
removeprefix【先頭文字列削除】3.9
removesuffix【末尾文字列削除】3.9
メモ
- 文字列の両側あるいは片側から指定した文字集合・文字列を削除
メソッド 備考 strip【両側文字集合削除】 指定文字集合に含まれている文字を両側から削除 lstrip【左側文字集合削除】 指定文字集合に含まれている文字を左側から削除 rstrip【右側文字集合削除】 指定文字集合に含まれている文字を右側から削除 removeprefix【先頭文字列削除】3.9 指定文字列を先頭から削除 removesuffix【末尾文字列削除】3.9 指定文字列を末尾から削除 - 関連
構文
例
startswith【先頭文字列判定】
endswith【後尾文字列判定】
メモ
- 先頭 または 後尾 の文字列の判定
メソッド 備考 startswith【先頭文字列判定】 先頭文字列の判定 (複数文字列の判定可 / 比較開始位置・比較終了位置の指定可) endswith【後尾文字列判定】 後尾文字列の判定 (複数文字列の判定可 / 比較開始位置・比較終了位置の指定可) - 関連
構文
str.startswith(prefix[, start[, end]])
str.endswith(suffix[, start[, end]])
戻り値判定結果 (True / False)
prefix比較文字列 または 比較文字列のタプル【tuple】
suffix比較文字列 または 比較文字列のタプル【tuple】
start比較開始位置インデックス
end比較終了位置インデックス
例
find【順方向検索 (例外なし)】
index【順方向検索 (例外あり)】
rfind【逆方向検索 (例外なし)】
rindex【逆方向検索 (例外あり)】
メモ
- 順方向 または 逆方向 で検索 (検索範囲の指定可)
メソッド 備考 find【順方向検索 (例外なし)】 順方向検索 (例外なし) index【順方向検索 (例外あり)】 順方向検索 (例外あり) rfind【逆方向検索 (例外なし)】 逆方向検索 (例外なし) rindex【逆方向検索 (例外あり)】 逆方向検索 (例外あり) - 出現回数を求めるには、count【出現回数】
- 関連
構文
str.find(sub[, start[, end]])
str.index(sub[, start[, end]])
str.rfind(sub[, start[, end]])
str.rindex(sub[, start[, end]])
戻り値一致位置インデックス (-1:一致なし)
sub検索文字列
start検索範囲開始位置インデックス (0≦:先頭から / <0:後尾から)
end検索範囲終了位置インデックス (0≦:先頭から / <0:後尾から)
例外ValueError (一致なし)
例
split【順方向分割】
rsplit【逆方向分割】
splitlines【行分割】
メモ
- 区切り文字列 (分割回数の指定可) または 行 で分割
メソッド 備考 split【順方向分割】 順方向で分割 (分割回数の指定可) rsplit【逆方向分割】 逆方向で分割 (分割回数の指定可) splitlines【行分割】 行で分割 (行保持の有無指定可) - 関連
構文
str.split(sep=None, maxsplit=-1)
str.rsplit(sep=None, maxsplit=-1)
str.splitlines([keepends])
戻り値分割後のリスト【list】
sep区切り文字列 (省略:1個以上の空白文字 / 先頭・後尾空白は削除)
maxsplit最大分割回数 (リスト【list】要素数:maxsplit + 1)
keepends行保持の有無 (省略:行の保持なし / True / False)
行は下記で分割 (終末の行は対象外)
行表現 | 備考 |
---|---|
\n | 改行 |
\r | 復帰 |
\r\n | 改行 + 復帰 |
\v \x0b | 垂直タブ 3.2 |
\f \x0c | 改ページ 3.2 |
\x1c | ファイル区切り |
\x1d | グループ区切り |
\x1e | レコード区切り |
\x85 | 改行 (C1 制御コード) |
\u2028 | 行区切り |
\u2029 | 段落区切り |
例
partition【順方向2分割】
rpartition【逆方向2分割】
メモ
- 区切り文字列で2分割
メソッド 備考 partition【順方向2分割】 順方向で2分割 rpartition【逆方向2分割】 逆方向で2分割 - 関連
構文
str.partition(sep)
str.rpartition(sep)
戻り値分割結果のタプル【tuple】 (区切りの前部分, 区切り文字列, 区切りの後ろ部分)
(分割不可:元の文字列と2つの空文字列)
sep区切り文字列
例
replace【置換】3.9
メモ
- 置換 (置換数の指定可)
置換元の変更なし - 置換数指定の空文字列置換 3.9
- Python 3.9:置換
- Python 3.9 未満:空文字列のまま
- 関連
構文
str.replace(old, new[, count])
戻り値置換後の文字列
old置換前文字列
new置換後文字列
count置換数 (省略:全て)
例
join【結合】
メモ
- 文字列の結合
- セパレータ:メソッドを呼び出す文字列
- 関連
構文
str.join(iterable)
戻り値結合後の文字列
iterableイテラブルオブジェクト
例外TypeError (非文字列)
例
expandtabs【タブ展開】
メモ
- タブ文字をスペースに展開
- 関連
構文
str.expandtabs(tabsize= 8)
戻り値タブ文字をスペースに置換した文字列
tabsize展開するスペース個数
例
encode【エンコード】
メモ
- 指定したエンコーディングでエンコード
- 関連
構文
str.encode(encoding="utf-8", errors="strict")
戻り値エンコードされたバイト列オブジェクト
encodingエンコーディング (標準エンコーディング 下記に一部抜粋)
errorsエラー処理 (下記が指定可能)
"strict":UnicodeError 例外
"ignore":無視
"replace":'?' で置換
"xmlcharrefreplace":XML 文字参照で置換 (&#nnnn;)
"backslashreplace":バックスラッシュ付きエスケープシーケンスで置換 ("\\uxxxx")
codecs.register_error() で登録された関数:登録関数呼び出し
例外UnicodeError
標準エンコーディング (抜粋)
エンコーディング | 別名 | 備考 |
---|---|---|
ascii | 646 us-ascii | ASCII |
cp932 | 932 ms932 mskanji ms-kanji | コードページ 932 |
euc_jp | euc-jp eucjp ujis u-jis | 日本語EUC |
shift_jis | shift-jis csshiftjis shiftjis sjis s_jis | Shift_JIS |
utf_7 | utf-7 U7 unicode-1-1-utf-7 | UTF-7 |
utf_8 | utf-8 U8 UTF utf8 | UTF-8 |
utf_16 | utf-16 U16 utf16 | UTF-16 |
utf_32 | utf-32 U32 utf32 | UTF-32 |
例
count【出現回数】
メモ
- 文字列の重複しない出現回数
- 関連
構文
str.count(sub[, start[, end]])
戻り値出現回数
sub検索文字列
start検索範囲開始位置インデックス (0≦:先頭から / <0:後尾から)
end検索範囲終了位置インデックス (0≦:先頭から / <0:後尾から)
例
translate【文字変換】
maketrans【文字変換テーブル作成】
メモ
- 文字列中の文字を変換
メソッド 備考 translate【文字変換】 文字を変換 static maketrans
【文字変換テーブル作成】translate【文字変換】で使用する文字変換テーブルを簡単に作成
(静的メソッド) - 関連
構文
str.translate(table)
static str.maketrans(x[, y[, z]])
戻り値変換後の文字列
table文字変換テーブル ( Unicode コードポイントで __getitem__() を実装するオブジェクト )
x引数の個数による
引数が1個:辞書 (【1文字】, 【Unicode コードポイント・文字列・None】)
引数が複数:文字列 (1文字毎に対応)
yx と同じ長さの文字列 (変換する1文字毎に対応)
z文字列 (1文字毎に削除)
例
format【書式化】
format_map【書式化 (マッピング)】3.2
メモ
- 置換フィールドを使用して書式化
メソッド 備考 format【書式化】 個々の引数を指定 format_map【書式化 (マッピング)】 辞書を指定 - カスタマイズ
- object.__format__(self, format_spec) を実装することで型特有の書式指定が可能
datetime.date【日付型】・datetime.time【時刻型】・datetime.datetime【日時型】は実装済
- object.__format__(self, format_spec) を実装することで型特有の書式指定が可能
- 他の書式化については、書式化 参照
- 関連
- 外部リンク
構文
str.format(*args, **kwargs)
str.format_map(mapping) 3.2
str (呼び出し文字列)置換フィールドを含んだ文字列
戻り値置換フィールドを置換した文字列
args置換フィールドに対応する位置引数
kwargs置換フィールドに対応するキーワード引数
mapping置換フィールドに対応する辞書
置換フィールド{[field_name][!conversion][:format_spec]}
同一置換フィールドを複数指定可能
{・} を通常の文字とするには、二重表現 {{・}}
入れ子:format_specには置換フィールドの指定可能 (例:フィールド幅を置換フィールドで指定)
field_name対応する引数の指定
field_name | 備考 |
---|---|
省略 3.1 | 引数の位置を 0から順に割り当て |
フィールド名 | キーワード引数 |
引数の位置番号 | 引数の位置 (0~) |
(上記の後に属性・個別要素を複数指定可) | |
.属性名 | 属性 |
[要素番号] | 要素 (番号指定) |
[要素名] | 要素 (名前指定) (要素名はクォート無し:数字文字列の要素名は不可) |
!conversion型変換
conversion | 備考 |
---|---|
s | str【文字列型】 呼び出し |
r | repr【印字可能文字列変換】 呼び出し |
a | ascii【印字可能文字列変換 (エスケープ)】 呼び出し |
:format_spec書式指定 (フィールド幅・文字揃え・埋め方・精度 等)
[[fill]align][sign][z3.11][#][0][width][grouping_option][.precision][type]
fill埋め込み文字 (省略:空白文字)
align揃え
align | 備考 |
---|---|
< | 左揃え |
> | 右揃え |
= | 符号の後ろをパディング (数値型のみ) |
^ | 中央揃え |
sign符号 (数値型のみ)
sign | 備考 |
---|---|
+ | 正数・負数ともに符号出力 |
- | 負数のみ符号出力 (デフォルト) |
(SP) | 負数は符号出力、正数は空白 |
zゼロ強制
負ゼロを正ゼロに強制 (浮動小数点表示のみ有効)
#別形式
型 | 備考 |
---|---|
整数 (2進数) | 0b~ |
整数 (8進数) | 0o~ |
整数 (16進数) | 0x~・0X~ |
整数 (10進数) 浮動小数点数 複素数 | 小数点以下に数字が無くても小数点文字を出力 但し、g・G 指定では小数点文字と0を出力 |
0ゼロパディング (数値型のみ有効)
width最小フィールド幅
grouping_optionグルーピング指定
grouping_option | 備考 |
---|---|
_ 3.6 | 浮動小数点数の表現型・整数の表現型 d【10進数】:3 桁毎の区切りにアンダースコア 整数の表現型 b【2進数】・o【8進数】・x【16進数 (小文字)】・X【16進数 (大文字)】:4 桁毎の区切りにアンダースコア |
, 3.1 | 3 桁毎の区切りにカンマ |
.precision精度・最大フィールド幅
型 | 備考 |
---|---|
浮動小数点数 (f・F) | 小数点以下の桁数 |
浮動小数点数 (g・G) | 小数点の前後の桁数 |
非数型 | 最大フィールド幅 |
type表現型
文字列 | |
---|---|
type | 備考 |
s | 文字列 (デフォルト) 通常省略 |
省略 | s【文字列】 と同じ |
整数 | |
---|---|
type | 備考 |
b | 2進数 |
c | 文字 (数値に対応する Unicode 文字に変換) |
d | 10進数 |
o | 8進数 |
x | 16進数 (小文字) |
X | 16進数 (大文字) |
n | 10進数 (現在ロケールの区切り文字挿入) |
省略 | d【10進数】 と同じ |
浮動小数点数・整数 (n・省略 以外) | |
---|---|
type | 備考 |
e | 指数表記 (e【指数】は小文字) |
E | 指数表記 (E【指数】は大文字) |
f | 固定小数点数表記 (nan【非数】・inf【無限大】は小文字) |
F | 固定小数点数表記 (NAN【非数】・INF【無限大】は大文字) |
g | 固定小数点数表記 但し、表現が困難になると指数表記 (詳細は、 書式指定ミニ言語仕様 type 参照) (e【指数】・nan【非数】・inf【無限大】は小文字) |
G | 固定小数点数表記 但し、表現が困難になると指数表記 (詳細は、 書式指定ミニ言語仕様 type 参照) (E【指数】・NAN【非数】・INF【無限大】は大文字) |
n | 数値 |
% | 固定小数点数表記でパーセンテージ表記 |
省略 |
例
例 (s:文字列)
例 (d:10進数)
例 (b:2進数)
例 (o:8進数)
例 (x・X:16進数)
例 (e・E:指数表記)
例 (f・F:固定小数点数表記)
例 (g・G:自動切換)
例 (%:パーセンテージ表記)
例 (型特有の書式指定)
% 演算子【printf 形式書式化】
メモ
- % 演算子で書式化
- C 言語の sprintf() に相似
- 他の書式化については、書式化 参照
- 関連
構文
format % values
戻り値指定子を置換した文字列
format指定子を含んだ文字列
values置換要素 (下記の指定が可)
タプル【tuple】 (指定要素数分)
辞書 ((key) に対応)
その他オブジェクト
指定子%[(key)][flag][width][.precision][length]type
(key)マップキー (辞書の対応キー名)
flag変換フラグ (下記の組合せ)
flag | 備考 |
---|---|
# | 別形式表記 0o~:符号付き 8 進数 0x~:符号付き 16 進数 (小文字) 0X~:符号付き 16 進数 (大文字) |
0 | ゼロパディング |
+ | 正数・負数ともに符号出力 (SP フラグは上書き) |
- | 左揃え (0 フラグは上書き) |
(SP) | 負数は符号出力、正数は空白 |
width最小のフィールド幅
width | 備考 |
---|---|
数字 | 最小のフィールド幅 |
* | タプル【tuple】の要素を使用 |
.precision精度
precision | 備考 |
---|---|
数字 | 精度 (デフォルト:6) |
* | タプル【tuple】の要素を使用 |
length精度長
length | 説明 | 備考 |
---|---|---|
h | short unsigned short | 未使用の為、無視 |
l | long unsigned long | |
L | long double |
type変換型
type | 備考 |
---|---|
a | ascii【印字可能文字列変換 (エスケープ)】で変換 |
c | 文字 |
d | 符号付き 10 進数 |
e | 指数表記の浮動小数点数 (e【指数】・nan【非数】・inf【無限大】は小文字) |
E | 指数表記の浮動小数点数 (E【指数】・NAN【非数】・INF【無限大】は大文字) |
f | 10 進浮動小数点数 (nan【非数】・inf【無限大】は小文字) |
F | 10 進浮動小数点数 (NAN【非数】・INF【無限大】は大文字) |
g | 指数表記の自動切換 (e【指数】・nan【非数】・inf【無限大】は小文字) 指数部が -4 以上または精度以下:指数表記 その他:10進表記 |
G | 指数表記の自動切換 (E【指数】・NAN【非数】・INF【無限大】は大文字) 指数部が -4 以上または精度以下:指数表記 その他:10進表記 |
i | 符号付き 10 進数 |
o | 符号付き 8 進数 |
r | repr【印字可能文字列変換】で変換 |
s | str【文字列型】で変換 |
u | d【符号付き 10 進数】と同じ |
x | 符号付き 16 進数 (小文字) |
X | 符号付き 16 進数 (大文字) |
% | % 文字 |
例
例 (d:符号付き 10 進整数)
例 (e・E:指数表記)
例 (f・F:固定小数点数表記)
例 (g・G:指数表記の自動切換)
例 (x・X:符号付き 16 進数)
f-string【フォーマット済み文字列リテラル】3.63.83.12
メモ
概要
- フォーマット済み文字列リテラル
- 文字列リテラルのプレフィックスとして f または F を指定 (詳細は、文字列作成 参照)
(r・R 【raw 文字列】との組み合わせが可能) - '''【ドキュメンテーション文字列】 としては使用不可
- 実行時に置換フィールドの式を評価
- 文字列リテラルのプレフィックスとして f または F を指定 (詳細は、文字列作成 参照)
- 他の書式化については、書式化 参照
制限
〔 例 〕置換フィールド内のコメント不可3.12置換フィールド内で外側の引用符タイプの再利用不可 (関連で入れ子制限)3.12置換フィールド内のバックスラッシュ不可 (Unicode エスケープシーケンス不可)3.12
関連
外部リンク
構文
f'《 置換フィールドを含んだ文字列 》'
使用可能なプレフィックス・引用符は、文字列作成 参照
置換フィールド{f_expression[=][!conversion][:format_spec]}
{・} を通常の文字とするには、二重表現 {{・}}
f_expression置換対象の式 (前後の空白は無視)
(conditional_expression | * or_expr)
(, conditional_expression | , * or_expr)* [,]
| yield_expression
※ カンマを使用するとタプル【tuple】指定 (丸カッコは省略可)
=3.8式のテキスト・等号も出力 (型変換・書式指定 より前の空白は保持) 〔 例 〕
conversion型変換 (format【書式化】のconversion 参照)
format_spec書式指定 (format【書式化】のformat_spec 参照)
入れ子:format_specには置換フィールドの指定可能 (例:フィールド幅を置換フィールドで指定)
conditional_expression式
指定可能・指定不可の例は下記参照
指定可能 例 | 備考 |
---|---|
即値 | 例:{123} |
変数 | 要素名を指定する場合、引用符が必要 (format【書式化】では不要) |
関数呼び出し | 戻り値が複数の場合、タプル【tuple】 |
lambda【ラムダ式 (無名関数)】 | : を使用する為、丸カッコで囲む |
if-else【三項演算子】 | |
算術演算等 | 例:{x + y} |
比較演算 | 結果が True・False |
指定不可 例 | 備考 |
---|---|
(空) | 例:{} |
例:{'\n'} 変数を使用して回避 | |
文 | yield【ジェネレータ関数・一時停止】 を除く 例:代入文 {i = 123} |
* or_exprアンパック対象 (def【関数定義】のアンパック 参照)
タプル【tuple】指定が必要:単一の場合、最後にカンマ
yield_expressionyield【ジェネレータ関数・一時停止】