2016-10-18 4 views
0

私はPython 3.6の64ビットで作業しています。ここで{}なしのPython形式()

は私のコードです:

days = "Mon Tue Wed Thu Fri Sat Sun" 

print("Here are the days",format(days)) 

私が得た出力は、ここで

である私は「{}」を追加しませんでした月火水木金土日曜は

日です私の弦。また、ドットの代わりにコンマ "、"を使用しました。 "

私の理解は、format()は文字列内の{}をその引数で置き換えることでした。

質問:format()は{}や{}なしでどのように動作しましたか?演算子

+1

コードをもう一度見てください。文字列( 'days')を文字列でフォーマットするように要求しています。日は辞書や配列ではありません。 –

+0

コードは –

答えて

0

print関数は、引数をすぐ後ろにスペースを入れて表示します。 format呼び出しは、置換えが見つからないので、何もせずに元の文字列を返します。ここで

助けるかもしれないいくつかの例は以下のとおりです。

>>> colors = "Red Blue" 
>>> print("Here are the colors", format(colors)) 
Here are the colors Red Blue 
>>> print("", format(colors)) 
Red Blue 
>>> print(format("abc"), format("xyz")) 
abc xyz 
>>> print("Here are the colors", colors) 
Here are the colors Red Blue 
2

私はあなたが何が起こっているかを考えていると思うようになります。

print("Here are the days {}".format(days)) 

しかし、実際に何が起こっていることはあなたが渡しているということですprint()の複数の引数あなたは、印刷のためのdocs(見れば)、それはパラメータのカップルを取ります

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False) 

オブジェクトの前にアスタリスクは、それが複数の引数を取ることができますを示しています。ここでの混乱のいくつかはformat()との差であってもよい

Here are the days Mon Tue Wed Thu Fri Sat Sun 
0

:今、あなたは、その結果二、と最初の引数として、およびフォーマット(日)「ここにある日」に渡しています機能および関連"string".format()方法。関数はフォーマット指定(2番目の引数)を持つオブジェクトの(第1引数)__format__()メソッドを呼び出します。 2番目の引数がNoneの場合は、str()と同じです。 format()メソッドがstrの場合、の置換ブラケットを検索し、format()関数と同様に適用されるフォーマット仕様を含む場合と含まない場合があります。例:

>>> # format() function which invokes float.__format__() 
>>> format(0.324, "+.4%") 
'+32.4000%' 
>>> 
>>> # str format() method that invokes various object.__format__() methods 
>>> # if a format specification is found in the substitution brackets: 
>>> "{:+.4%} rise in {}".format(0.324, "temperature") 
'+32.4000% rise in temperature' 
>>> 

質問:どのようにフォーマットしなかったが(){}なしで働いて。演算子

'。' 2番目の引数を指定せずに単純に文字列を返すformat()関数を誤って呼び出すことがありました。 format()関数は{}を使用しません。これは、 '。'によって呼び出されるstrのformat()メソッドです。 {}を使用して置換を行い、そのうちのいくつかは書式設定を必要とする可能性があります。

おそらく、strメソッドの形式が"{} string {}".interpolate(x, y)のように異なる場合は、書式設定がその一部に過ぎないため、あまり混乱していない可能性があります。

+0

だったはずです説明のためにありがとう –