2017-01-29 5 views
-1

私はPHPのバックグラウンドから来て、私は各繰り返しを印刷しようとしています。私はPythonでPython:動的変数を印刷するには

>>> a0, a1, a2 = [12, 5, 8] 
>>> b0, b1, b2 = [5, 9, 11] 
>>> categories = [0, 1, 2] 
>>> for i in categories: 
     print(a+i) 

エラーにそれを行う方法を理解することはできません。私はそれが基本的なことを知っている

Traceback (most recent call last): 
    File "<stdin>", line 2, in <module> 
NameError: name 'a' is not defined 
>>> for i in categories: 
... print('a'+i) 
... 
Traceback (most recent call last): 
    File "<stdin>", line 2, in <module> 
TypeError: cannot concatenate 'str' and 'int' objects 
>>> for i in categories: 
...  print(a+str(i)) 
... 
Traceback (most recent call last): 
    File "<stdin>", line 2, in <module> 
NameError: name 'a' is not defined 

を、私はそれを解決する方法がわかりません。

編集:

>>> print a0 
12 
>>> print a2 
8 

A0、A1、A2は可変です。私は0,1,2 inを持っているので、a0、a1、a2、b0、b1、b2を手動で書く必要はありません。

+1

この質問はスタックオーバーフローで何度も求められています。ここに1つのそのような質問があります:http://stackoverflow.com/questions/19122345/to-convert-string-to-variable-name –

+0

あなたのスタックトレースはそれをすべて言います。 'NameError:name 'a' not defined 'は、定義されていない変数' a'にアクセスしようとしたことを意味します。 'TypeError: 'str'と 'int'を連結できない 'objects'は' str'と 'int'値に対して' + '演算を実行しようとしたことを意味します(どちらも同じである必要があります) –

+0

エラーが示唆しているように' name 'a'は定義されていません。 –

答えて

-4
>>> a0, a1, a2 = [12, 5, 8] 
>>> b0, b1, b2 = [5, 9, 11] 
>>> categories = [0, 1, 2] 

for i in categories:   
    print(eval('a'+str(i))) 

のevalは、私はあなたがpythonでこのようにそれを行うだろうとは思わない はそう

output : 
12 
5 
8 
+0

私は私の答えを編集 –

+0

ようこそスタックオーバーフロー!このユーザーの問題を解決しているかもしれませんが、将来この問題に遭遇するユーザーにとってはコードオンリーの回答はあまり役に立ちません。あなたのコードが元の問題を解決する理由を説明するために、あなたの答えを編集してください。 –

+0

@Joe C、私は私の答えを編集しました、これについては申し訳ありません。 –

1

A2、A1、変数A0を印刷します、変数に文字列を行います。より多くのpythonicは、リストや配列のような値を格納することです:

a = [1, 2, 3] 
cat = [0, 1, 2] 
for i in cat: 
    print(a[i]) 
関連する問題