Python循环生成字符串问题:如何输出变量值a、b、c
问题解决:输出变量值而非变量名
你当前的代码只是将字符串'line'与数字拼接成了变量名字符串,但并未获取对应变量的实际值,所以输出的是line1这类字符串而非变量存储的a、b、c。
给你几种可行的修正方案:
方案1:使用字典存储数据(最推荐)
将变量统一存入字典,通过键名直接获取对应值,更符合Python编程规范,也更易维护:
lines = {'line1': 'a', 'line2': 'b', 'line3': 'c'} for i in range(1, 4): word = lines[f'line{i}'] print(word)
方案2:通过globals()获取全局变量
如果必须保留单个变量的定义,可以用globals()函数获取全局变量字典,从中取出对应值(不推荐在复杂项目中使用,易引发潜在风险):
line1 = 'a' line2 = 'b' line3 = 'c' for i in range(1, 4): word = globals()[f'line{i}'] print(word)
方案3:使用列表简化逻辑
如果不需要保留line1这类命名,直接用列表存储数据会更简洁:
lines = ['a', 'b', 'c'] for word in lines: print(word)
内容的提问来源于stack exchange,提问作者Michael Krieg
相关产品推荐
相关产品推荐

