在stackoverflow中你好新来的,也是我在Python中编程的新手,还在学习。
我想知道为什么我在第二个for循环中得到一个语法错误,我试图比较两个相同长度的数组,当ax> bx当ax< bx B记录1点,其中ax == bx无人得分。
def solve(a0, a1, a2, b0, b1, b2):
A = 0
B = 0
a = [a0 , a1 ,a2]
b = [b0, b1, b2]
for x in a and for y in b:
if x > y:
pointA + 1
if x==y:
pass
else:
pointB + 1
result = [pointA, pointB]
return result
a0, a1, a2 = raw_input().strip().split(' ')
a0, a1, a2 = [int(a0), int(a1), int(a2)]
b0, b1, b2 = raw_input().strip().split(' ')
b0, b1, b2 = [int(b0), int(b1), int(b2)]
result = solve(a0, a1, a2, b0, b1, b2)
print " ".join(map(str, result))
然后我尝试了一些调查:
from itertools import product
import sys
def solve(a0, a1, a2, b0, b1, b2):
A = 0
B = 0
a = [a0 , a1 ,a2]
b = [b0, b1, b2]
A = sum(1 if x>y else 0 for x, y in product(a, b))
B = sum(1 if x<y else 0 for x, y in product(a, b))
result = [A, B]
return result
a0, a1, a2 = raw_input().strip().split(' ')
a0, a1, a2 = [int(a0), int(a1), int(a2)]
b0, b1, b2 = raw_input().strip().split(' ')
b0, b1, b2 = [int(b0), int(b1), int(b2)]
result = solve(a0, a1, a2, b0, b1, b2)
print " ".join(map(str, result))
但输入为:
1 1 1
0 0 0
我得到了:
9 0
有人可以解释我做错了什么,为什么?提前谢谢。
此致 [R
答案 0 :(得分:0)
and
期望布尔值不是表达式,因此:for x in a and for y in b:
永远不会有效。
您可以使用zip()
:
1 a
2 b
3 c
>>> a = [1, 2, 3]
>>> b = ['a', 'b', 'c']
>>> for x, y in zip(a, b):
... print('{} {}'.format(x, y))
...
1 a
2 b
3 c
请纠正你的缩进。