2017-06-02 96 views
1

我有变量text1,text2, text3。我想打印它们。如何使用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

它会工作,但请避免在代码操作中使用eval,除非你想要巨大的安全漏洞。 – Rosh

1

你不想这样做,请尝试使用列表或字典来代替。

3

正确的方法是python是使用字典。此刻,您正在接受一个字符串对象,该字符串对象由包含字符串'text'的变量文本引用,并将其与字符串对象'i'连接起来以创建新的字符串对象'texti'并使文本变量引用该对象。也就是说,你所做的就是创建一个新的字符串对象并用相同的变量引用它。

你想要做的是制作一个字典,其中的键是变量,值包含你引用的对象。

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

现在如果你想获得“你好”,你会

print(variables['var1']) 
1

如果由于某种原因,你需要做到这一点,你可以使用函数eval解析字符串作为Python表达式。只是

print(eval(text)) 

取代你print(text)线,但詹姆斯Lingham说,这不是一个好主意。阅读并容易出错是令人困惑的,并且存在更简单的解决方案。例如,您可以创建一个列表[text1, text2, text3],然后遍历它们。

text = [text1, text2, text3] 
for i in text: 
    print(i)