2017-06-27 28 views
0

こんにちは、ここではstackoverflowの新しい、私はPythonのプログラミングでは新しいとまだ学んでいます。2つの配列とPythonのForループを比較する

2番目のforループでSyntaxエラーが発生する理由を知りたいのですが、同じ長さの2つの配列を比較しようとしています。ax> bx AVE時の黙示録< bx B recive 1 pointどこで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)) 

その後、いくつかの私が試した調査で:私が得た

1 1 1 
0 0 0 

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

が、入力された

9 0 

は、誰かが私が何を説明することができます間違っているのはなぜですか?前もって感謝します。

よろしく、

答えて

0

andがブール値でない表現を期待Rので、この: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 

をそして、あなたのへこみを修正してください。

+0

私は郵便で訂正をしました。私は郵便番号を使用しました。そして、私のコードは本当にうまくいっています! ありがとうございました:) –

+0

うれしいです。 – gonczor

関連する問題