2017-06-02 5 views
1

私は変数を持っていますtext1,text2,です。私はそれらを印刷したい。変数名にforloopを使用する方法

for i in range(1, 4): 
    text = 'text' + str(i) 
    print(text) 

このコードを印刷した文字列 テキスト1テキスト2 テキスト3 、それらのない内容。

+3

変数を動的に作成しないでください。それは間違った方法です。代わりに[辞書](https://docs.python.org/3/library/stdtypes.html#dict)を使用してください。 –

答えて

-1

私は他のコメントに同意していますが、方法があります。 これを行うには、より良い方法を見つけてください。

for i in range(1,4): 
    text = 'text' + str(i) 
    print(eval(text)) 
+2

巨大なセキュリティホールを必要としない限り、コードopでevalを使用しないでください。 – Rosh

1

これをしたくない場合は、代わりにリストや辞書を使用してみてください。

3

これを行う正しい方法は、Pythonは辞書を使用することです。現時点では、文字列 'text'を含む変数テキストによって参照される文字列オブジェクトを取得し、文字列オブジェクト 'i'と連結して新しい文字列オブジェクト 'texti'を作成し、テキスト変数参照を作成します。つまり、新しい文字列オブジェクトを作成し、同じ変数で参照するだけです。

あなたがしたいのは、キーが変数で、値に参照オブジェクトが含まれている辞書を作成することです。

variables = {'var1':'Hello', 'var2':'World'} 

は、今あなたが「こんにちは」を取得したい場合は、あなたでしょう

print(variables['var1']) 
1

これを実行する必要があるいくつかの理由のために、あなたはPythonの表現として文字列を解析する機能evalを使用することができます。ただ、

print(eval(text)) 

であなたのprint(text)行を置き換えるしかし、ジェームズLinghamが言ったように、これは良いアイデアではありません。読み込みが紛らわしく、エラーが発生しやすくなり、ずっと簡単な解決策が存在します。たとえば、リスト[text1, text2, text3]を作成し、それをループすることができます。

text = [text1, text2, text3] 
for i in text: 
    print(i) 
関連する問題