变量名能根据i变化吗?我想设置一些变量名,比如如下, 就是打印出
A0, A1, A2, A3.代码应该如何写?
import NumPy as np
for i in range(0,3)
Ai = 6
print(Ai)
for i in range(0, 3):
locals()['A%s' % i] = 6
可以,使用exec就能够执行
for i in range(3):
exec('A'+str(i)+'='+'6')
exec('print(A{})'.format(i))
可以
for n in range(0, 7):
globals()['strg%s' % n] = 'Hello'
# strg0 = 'Hello', strg1 = 'Hello' ... strg6 = 'Hello'
for x in range(0, 7):
globals()[f"variable{x}"] = f"Hello the variable number {x}!"
print(variable0)
print(variable1)
print(variable2)
print(variable3)
print(variable4)
print(variable5)
for n in range(0, 3):
globals()['A%i' % n] = 2020 + n
print(A0)
print(A1)
print(A2)
# 使用locals()获取局部命名空间 或者 使用globals()获取全局命名空间
names = locals()
# globals()
# 通过循环动态设置变量名称
for i in range(0, 3):
names[f"A{i}"] = i
# 输出变量,如果使用IDE(例如Pycharm)这里会标红,因为IDE是静态检查的,但是执行是可以成功的
print(A0, A1, A2)
结果如下:
for i in range(0, 3):
# 动态执行 A1=1语句
exec(f'A{i}={i}')
# 输出变量,如果使用IDE(例如Pycharm)这里会标红,因为IDE是静态检查的,但是执行是可以成功的
print(A0, A1, A2)
结果如下:
如果想要达到直接循环打印print(Ai)的效果,就需要通过exec
方法动态执行。
for i in range(0, 3):
exec(f'A{i}={i}')
exec(f'print(A{i})')
f'A{i}={i}'是Python3.6+提供的格式化语法,等价于 'A{}={}'.format(i,i) 等价于 'A%i=%i' % (i, i)
不知道你这个问题是否已经解决, 如果还没有解决的话: