手短に
下記のような表示をしたかった。
a=1
b='hello'
文字列の時はクオーテーションマークをつけたいが、f"b={b}"
だとうまく行かない。
こうすると良い。
print(f"b={b!r}")
# b='hello'
!
以降はconversionを示す。
replacement_field ::= "{" [field_name] ["!" conversion] [":" format_spec] "}" field_name ::= arg_name ("." attribute_name | "[" element_index "]")* arg_name ::= [identifier | digit+] attribute_name ::= identifier element_index ::= digit+ | index_string index_string ::= <any source character except "]"> + conversion ::= "r" | "s" | "a" format_spec ::= <described in the next section>
field_name の後に、感嘆符 '!' を挟んで conversion フィールドを続けることができます。
現在 3つの変換フラグがサポートされています: 値に対して str() を呼ぶ '!s' 、 repr() を呼ぶ '!r' 、 ascii() を呼ぶ '!a'。
ソース
蛇足&感想
f"b={repr(b)}"
でもよい。
知らなかった。