1222331231 发表于 2022-12-26 13:33:00

变量名的问题

怎么达到类似下面的效果啊,不想一个一个打,好几百个,太累了block1 = 1
block2 = 2
block3 = 3
.......

人造人 发表于 2022-12-26 13:40:07


#!/usr/bin/env python
#coding=utf-8

for i in range(1, 10):
    print(f"block{i} = {i}")

Twilight6 发表于 2022-12-26 13:55:04


如果你是想打印出这种结果,可以参考楼上的代码

如果你是想真实的进行赋值,可以使用 exec 函数,参考代码:

for i in range(1, 10):
    exec(f"block{i} = {i}")

print(block1)
print(block5)
print(block9)

输出结果:

1
5
9

也就是将 print 函数换成 exec 函数即可

lxping 发表于 2022-12-26 13:56:28

for i in range(1,11):
    locals()["block"+ str(i)] = i

block1
1
block2
2
block10
10

hrpzcf 发表于 2022-12-26 14:03:24

当你需要定义几百个相似的变量时,你应该考虑使用循环的方式往列表储存变量值,使用时使用循环的方式从列表取值,定义几百个相似变量实在太不优雅了
blocks =
for b in blocks:
    print(b)

1222331231 发表于 2022-12-26 14:38:27

Twilight6 发表于 2022-12-26 13:55
如果你是想打印出这种结果,可以参考楼上的代码

如果你是想真实的进行赋值,可以使用 exec 函数,参考 ...

问题解决了,但我用的pycharm,他就在print里的block1,5,9那显示这个    unresolved reference,有解决方法吗?

Twilight6 发表于 2022-12-26 15:29:24

1222331231 发表于 2022-12-26 14:38
问题解决了,但我用的pycharm,他就在print里的block1,5,9那显示这个    unresolved reference,有解决 ...


没事,PyCharm 检测不到你前面定义了这些变量,导致出现错误提示,无视它就行

或者直接在设置里面关了,但是建议还是不用关吧

毕竟编辑器的检测语法有的时候确实能帮助我们在运行程序之前找到一些不易察觉的错误

1222331231 发表于 2022-12-26 16:38:46

Twilight6 发表于 2022-12-26 15:29
没事,PyCharm 检测不到你前面定义了这些变量,导致出现错误提示,无视它就行

或者直接在设置里面 ...

好的谢谢
页: [1]
查看完整版本: 变量名的问题