debugging 如何打印出变量名而不是值?

vecaoik1  于 2022-11-30  发布在  其他
关注(0)|答案(4)|浏览(159)

如果我有一个变量列表,并且每个变量都被分配给一个方程,我如何从列表中打印变量本身而不是方程的结果
例如:

x = 1 + 1
y = 2 + 2
z = 3 + 3

list = [x, y, z]

print(list[0])
print(list[1])
print(list[2])

应打印出:

x
y
z

代替:

2
4
6
gz5pxeao

gz5pxeao1#

print()为您提供list[0]、list[1]或list[2]的值您在应用程序启动时为它们提供了值2,4,6

x = 1 + 1
y = 2 + 2
z = 3 + 3

如果你想得到x,y,z,试试这个:

x = "x"
y = "y"
z = "z"
3htmauhk

3htmauhk2#

在这种情况下,您需要将列表更改为字符串,否则它会认为它是一个变量并打印分配给它的值。要解决此问题,请将第5行更改为:list = [“x”,“y”,“z”] -〉这样它将输出字符串,而不是变量x的值

ui7jx7zq

ui7jx7zq3#

这里的答案显然是正确的,但也许它们错过了真实的的重点。我假设你希望能够同时显示/使用 * 名称和值,例如打印类似“x,y,z之和为12”的内容。
如果是这种情况,你可能想使用Python的内置命名空间,但最简单的方法是使用字典,其中你的名字将是键,你的值......嗯,值:

my_dict = {}
my_dict['x'] = 1 + 1
my_dict['y'] = 2 + 2
my_dict['z'] = 3 + 3

','.join(my_dict.keys()) #'x,y,z'
sum(my_dict.values()) # 12
hvvq6cgz

hvvq6cgz4#

从你的第一个问题开始我就不太明白你需要什么
我想这可以行得通:

def dna_content(seq):
    A = ["A", (seq.count("A") / len(seq)) * 100]

    T = ["T", (seq.count("T") / len(seq)) * 100]
    G = ["G", (seq.count("G") / len(seq)) * 100]
    C = ["C", (seq.count("C") / len(seq)) * 100]
    bases = [A, T, G, C]
    for i in bases:
        print(str(i[0]) + " content is: " + str(i[1]))

而且...我找不到如何通过变量的值访问变量名
UPD:
试试这个:

x = 1 + 1
y = 2 + 2
z = 3 + 3
list = ["x", "y", "z"]

for i in list:
    print(i, globals()[i])

相关问题