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,并且遇到了错误。如果有人不仅可以给我一个答案,而且可以详细解释你做的事情会很棒。我真的很想明白为什么。
答案 0 :(得分:1)
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)
您的代码会在条件中测试k2
和k3
,而不是其中的元素。
答案 1 :(得分:0)
实际上,您将列表与数字进行比较,k2是列表,而10是数字;所以实际的比较是假的,应该引发异常,但在python中并非如此。列表k2与数字的比较将始终大于任何数字,因此条件始终为真。 soltuion已经发布。 希望它有所帮助