Python打印已赋值变量时控制台输出字符串而非目标值的解决方法
问题原因
你当前代码输出不符合预期的核心原因是,Hi = (Hello[0])这行只是提取了字符串"Hello"的首字符'H',这个是字符串类型的字符,和你之前定义的数值型变量H没有关联,Python不会自动把字符串形式的变量名解析成对应变量的取值,所以打印Hi的时候输出的是字符H而不是变量H存储的数值8。
调整方案
- 方案1:直接读取全局命名空间取值
如果要实现「提取到字符串形式的变量名后,自动取对应变量值」的效果,可以通过Python内置的globals()方法获取全局变量的字典映射,用提取到的字符作为key取对应值,修正后代码如下:
H=8 Hello= "Hello" Hi=globals()[Hello[0]] print(H) print(Hi)
运行后输出:
8 8
- 方案2:自定义变量映射字典(自动化场景推荐)
做流程自动化时更推荐单独维护变量存储字典,避免全局命名空间里的无关变量干扰逻辑,可控性更强:
# 统一维护自动化流程用到的变量 var_pool = { "H": 8 } Hello = "Hello" Hi = var_pool[Hello[0]] print(var_pool["H"]) print(Hi)
运行后同样可以得到预期输出。
内容的提问来源于stack exchange,提问作者Nicolas De Luca
相关产品推荐
相关产品推荐

