python 为什么打印功能没有给予所需的输出?

rur96b6h  于 2022-11-27  发布在  Python
关注(0)|答案(4)|浏览(130)

如果我有一个变量列表,每个变量都分配给方程,我如何打印变量本身从列表,而不是方程的结果
作为例子

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

list = [x, y, z]

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

输出将是:
2
4
6
而我意图是:
X射线
Y形
Z轴

rkue9o1l

rkue9o1l1#

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"
polhcujo

polhcujo2#

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

vmjh9lq9

vmjh9lq93#

这里的答案显然是正确的,但也许它们错过了真实的的重点。我假设你希望能够同时显示/使用 * 名称和值,例如打印类似“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
4ngedf3f

4ngedf3f4#

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

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])

相关问题