exec的问题
list = ['a', 'b', 'c']x = 1
for a in list:
name = 'number' + str(x)# 动态创建变量
exec(name + '=a')# 赋值
exec('print(' + name + ')')
x += 1
这里面2个exec是什么意思,有些不懂,尤其是后面那个print(‘+name+’)这是输出什么内容? 执行一段代码。
比如说第一个exec,它的参数内容就是"name = a"。
exec就会执行它。
第二个,参数内容就是print(name),就会打印出name的值。 本帖最后由 superli 于 2021-1-28 11:04 编辑
qiuyouzhi 发表于 2021-1-28 10:32
执行一段代码。
比如说第一个exec,它的参数内容就是"name = a"。
exec就会执行它。
这exec中name+中的+是种固定格式吗,这样的话name = 'number' + str(x)这句有什么意义,直接赋值不就好了。为何不直接写成exec(name'=a') 和
exec('print(' name')') 本帖最后由 Twilight6 于 2021-1-28 12:15 编辑
superli 发表于 2021-1-28 10:59
这exec中name+中的+是种固定格式吗,这样的话name = 'number' + str(x)这句有什么意义,直接赋值不就 ...
这里是动态赋值,而如果我们需要人为达到这样效果就需要赋值三次
number1 = 'a'
number2 = 'b'
number3 = 'c'
而这里也就 3 个 变量,比较少可以人为直接进行赋值
但一但元素多了,而你需要将所有列表元素依次赋值到不同变量上去时,用这个就可以直接快捷的完成
比如,你需要将 list1 元素取出,依次赋值给变量 number1~9 时,就可以执行下面这个代码:
list1 = ['a', 'b', 'c','d','e','f','g','h','i']
x = 1
for a in list1:
name = 'number' + str(x)
exec(name + '=a')
x += 1
print('number1:',number1)
print('number9:',number9)
页:
[1]