鱼C论坛

 找回密码
 立即注册
查看: 1624|回复: 3

[已解决]exec的问题

[复制链接]
发表于 2021-1-28 10:28:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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+’)这是输出什么内容?
最佳答案
2021-1-28 12:11:33
本帖最后由 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)

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-28 10:32:11 | 显示全部楼层
执行一段代码。
比如说第一个exec,它的参数内容就是"name = a"。
exec就会执行它。
第二个,参数内容就是print(name),就会打印出name的值。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-28 10:59:27 | 显示全部楼层
本帖最后由 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  ')')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-28 12:11:33 | 显示全部楼层    本楼为最佳答案   
本帖最后由 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)

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-16 16:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表