如何自动打印通过for循环声明的全局变量w1至w5的值?
批量打印w1至w5变量值的方法
你可以利用globals()本身是字典的特性,直接循环生成变量名并取值打印,几种实用的写法如下:
方法一:精准遍历w1到w5
直接构造变量名字符串,从globals()字典中取出对应值打印,适合明确知道变量范围的场景:
for i in range(1, 6): var_name = f'w{i}' # 打印变量名和对应值 print(f'{var_name} = {globals()[var_name]}')
方法二:灵活筛选变量
如果后续可能新增类似命名的变量,或者不确定变量是否都存在,可以先筛选符合命名规则的变量再打印:
# 遍历全局变量字典的键值对 for name, value in globals().items(): # 筛选以'w'开头、后面跟数字、且数字在1-5之间的变量 if name.startswith('w') and name[1:].isdigit(): num = int(name[1:]) if 1 <= num <= 5: print(f'{name} = {value}')
方法三:容错性写法
担心某个变量不存在会报错的话,加上存在性判断:
for i in range(1, 6): var_name = f'w{i}' if var_name in globals(): print(f'{var_name} = {globals()[var_name]}') else: print(f'⚠️ 变量{var_name}不存在')
内容的提问来源于stack exchange,提问作者Hasanuzzaman Hasan
相关产品推荐
相关产品推荐

