2016-10-26 16 views
0

私はPython 3.6を使用しています。私はPythonを参考にして難しい方法を使っています。Pythonで混合リストを印刷する

私は混合リストを持っており、要素を印刷しようとしています。本には、リストに含まれるものがわからないので、

フォーマットコード "r"を使用すると記載されています。しかし、私はこれに間違いがあります。

これは以前のバージョンでも機能しましたか?どのようにして混合リストを印刷することができますか?

change = [1,'pennies',2,'dimes',3,'quarters'] 
for i in change: 
print("I got {:r}".format(i)) 

エラー・スタックトレース:

Traceback (most recent call last): 
    File "<pyshell#52>", line 2, in <module> 
    print("I got {:r}".format(i)) 
ValueError: Unknown format code 'r' for object of type 'int' 

おかげ

+0

これは ':r'ではなく'!r'でなければなりません。 –

答えて

1

str.formatについては、 "力にrepr" 変換が!rで行われ

は、ここに私のコードとエラーです。ではない:r;それは変換のためのタイプを主張していない、それは "__format__を使用しないで、__repr__を使用して変換を実行する"と言っています。それを作る:

print("I got {!r}".format(i)) 
+0

プレーンフォーマット指定子 '{}'は、何かを処理します。 '' {1、 'eggs'、{'spam':99}] 'を生成します。' – nigel222

+0

@ nigel222:Yar。オブジェクトがより高度な書式設定をサポートしていない場合は 'str'に戻ります。通常は' str'は 'repr'と同じくらい安全です(時には同じことです)。私は主に 'repr'を使って私が働いているもののより良いアイデアを得ています(' str'は私が働いているものについての情報を省略する可能性が高いためです)。 – ShadowRanger