在python中打印带有适当if条件的列表

2024-03-29 06:13:17 发布

您现在位置:Python中文网/ 问答频道 /正文

k1 = ['UCF', 'Mario', 'JonnnyStorm']
k2 = [10, 14, 5]
k3 = [300, 700, 600]

for p,g,h in zip(k1,k2,k3):
    if k2 > 10 and k3 > 400:
        print p,g,h

我想看到的是

输出:

Mario 14 700

我得到的是

输出:

UCF 10 300
Mario 14 700
JonnnyStorm 5 600

即使我换了条件,我还是得到了完全错误的答案。我一定错过了什么重要的东西。你知道吗

如果我能把它打印出来

Mario has 14 Points and is at Rank 700.

那太好了。我用正常的打印语法尝试用%s和%d来打印,结果出现了大量错误。如果有人不仅能给我一个答案,而且能详细解释一下你的所作所为,那就太好了。我真想知道为什么。你知道吗


Tags: and答案inforif错误k2k1
2条回答
k1 = ['UCF', 'Mario', 'JonnnyStorm']
k2 = [10, 14, 5]
k3 = [300, 700, 600]

for p,g,h in zip(k1,k2,k3):
    if g > 10 and h > 400:
        print '{0} has {1} points and is at Rank {2}'.format(p, g, h)

您的代码在条件中测试k2k3,而不是测试其中的元素。你知道吗

实际上,您正在将一个列表与一个数字进行比较,k2是一个列表,而10是一个数字;因此实际的比较是错误的,应该会引发一个异常,但在python中并非如此。列表k2与数字的比较总是大于任何数字,因此条件总是真的。已发布解决方案。 希望有帮助

相关问题 更多 >