2017-06-26 6 views
0

古典stringf-stringに変換するにはどうすればよいですか? :文字列をf-stringに変換する

variable = 42 
user_input = "The answer is {variable}" 
print(user_input) 

回答は{変数}

f_user_input = # Here the operation to go from a string to an f-string 
print(f_user_input) 

ある答えは構文なく、オブジェクト型42

+0

f-stringは**構文**であり、オブジェクトタイプではありません。テンプレートをその構文に変換することはできません。 –

答えて

2

F文字列であります。任意の文字列をその構文に変換することはできません。構文は文字列オブジェクトを作成します。

私はちょうどuser_inputオブジェクトにstr.format() methodを使用し、テンプレートとしてuser_inputを使用したいと仮定しています:すべてに名前空間の辞書を作成し、あなたが設定可能なテンプレートサービスを提供したい場合は

variable = 42 
user_input = "The answer is {variable}" 
formatted = user_input.format(variable=variable) 

補間、および名前空間を適用する**kwargs呼び出し構文でstr.format()を使用することができるフィールド:

namespace = {'foo': 42, 'bar': 'spam, spam, spam, ham and eggs'} 
formatted = user_input.format(**namespace) 

その後、ユーザはキーIのいずれかを使用することができますn {...}フィールドの名前空間(または使用しないフィールドは無視されます)。

+0

申し訳ありませんが、ありがとう(まだ受け入れられません)。未知数の名前{}}をどうすれば処理できますか? –

+0

@fmalaussena: 'kwargs'構文を使って、名前空間を持つ辞書を渡します。だから 'template.format(** namespace)'、 'namespace'はユーザが補間できるすべての名前を持つ辞書です。 –

+0

私はそれを得ると思います。しかし、 'namespace'の形式はどうでしょうか? –

1
variable = 42 
    user_input = "The answer is {variable}" 
    # in order to get The answer is 42, we can follow this method 
print (user_input.format(variable=variable)) 
(or) 
    user_input_formatted = user_input.format(variable=variable) 
    print (user_input_formatted) 
    Good link https://cito.github.io/blog/f-strings/ 
関連する問題