You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何通过for循环打印带连续编号变量的值?

如何通过for循环打印带连续编号的变量的值?

我想在Python里用for循环打印a0、a1、a2这类带连续编号的变量的数值,写了下面的代码:

a0 = 3
a1 = 4
a2 = 5
for i in range(3):
    tmps = 'a' + '%d' %i
    print(tmps)

但这段代码只输出了变量名:

a0
a1
a2

我需要输出对应的数值3、4、5,请问该怎么修改代码?


解决方案

临时方案:通过变量名字符串获取值(快速但不推荐)

你现在的代码只是生成了变量的名字字符串,但没有去读取这个名字对应的实际变量值。Python里可以用globals()或者locals()函数拿到当前作用域的变量字典——字典的键就是变量名,值就是变量的内容。修改后的代码可以写成这样:

a0 = 3
a1 = 4
a2 = 5
for i in range(3):
    var_name = f'a{i}'  # 用f-string拼接更简洁,替代原来的'%d'写法
    print(globals()[var_name])

运行这段代码就会输出你想要的:

3
4
5

不过得提醒你,这种直接操作全局变量字典的方式并不推荐,一来代码可读性差,二来如果不小心写错变量名,很容易引发奇怪的错误,维护起来也麻烦。

推荐方案:用列表/字典统一存储变量(更符合Python风格)

其实从一开始就不该用a0、a1、a2这种零散的变量,把相关的值放到列表或者字典里才是更合理的做法,遍历起来也更方便:

列表方式(最适合连续编号的场景)

如果你的变量是严格连续编号的,直接用列表就完美解决:

a_values = [3, 4, 5]
for val in a_values:
    print(val)

输出同样是:

3
4
5

要是你还需要把编号和值对应起来打印,用enumerate就行:

a_values = [3, 4, 5]
for idx, val in enumerate(a_values):
    print(f'a{idx} = {val}')

输出结果:

a0 = 3
a1 = 4
a2 = 5

字典方式(适合非连续编号或自定义命名)

如果你的变量名不是连续数字(比如a1、a3、a5),用字典存储更灵活:

a_dict = {'a0': 3, 'a1': 4, 'a2': 5}
# 按变量名排序后遍历,保证顺序正确
for key in sorted(a_dict.keys()):
    print(a_dict[key])

这样也能得到正确的数值输出。


内容的提问来源于stack exchange,提问作者C. Harry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 06:44:50