我们可能会时长碰到这样一个场景,计算得到一个非固定值,需要根据这个值定义相同数量个变量。
实现方式的核心是exec函数,exec函数可以执行我们输入的代码字符串。exec函数的简单例子:
>>>exec ('print "hello world"')
hello world
可以很清晰的看到,我们给exec传入一个字符串'print "hello world"',exec是执行字符串里面的代码print "hello world"。根据这个特性,我们可以用占位符实现我们对变量的定义,如:
exec ("temp%s=1"%1)
这段代码的意思是,让exec执行temp1=1。字符串里面的%s由‘1’代替了。我们在外面再套一个循环就可以实现对多个变量的定义了。
for i in range(10):
exec ("temp%s=1"%i)
在这里,通过一个循环来生成10个变量,i的变化从0到9。用变量i替代%s,所以在每次循环里面,分别给temp0,temp1赋值。
执行结果:
如果想要替换多个占位符,可以这样写:
exec ("temp%s=%d"%(i,i))
在这里,分别以字符串、整数形式替换占位符,执行结果:
temp1=1