1
if (blue_percentage > (red_percentage * 0.49)) and \
   (red_percentage < ((blue_percentage / 1.44) + 1)) and \
   (red_percentage > ((blue_percentage / 4.35)-1) and \
   (blue_decimal > green_decimal) and \
   (red_decimal > green_decimal):
    print "<div>The hue is: <b>Purple</b>.</div>"

それは、

:

無効な構文です。

線を引くと

       (red_percentage > ((blue_percentage / 4.35)-1) and \

プログラムは問題なく動作します。私はある種の矛盾した声明か何かを引き起こしていますか?見えない。

4

2 に答える 2

1

次の行に閉じ括弧がありません。

(red_percentage > ((blue_percentage / 4.35)-1) and \

そのはず

(red_percentage > ((blue_percentage / 4.35)-1)) and \
#                                             ^
于 2012-06-17T21:34:56.583 に答える
1
  (red_percentage > ((blue_percentage / 4.35)-1) and 

クロージングがありません)

コード/アプリケーションに精通している場合は、この大きな式をさらに単純化できる可能性がありますが、今のところ、これを分解して管理しやすくする簡単な方法として、以下に示すようなものを試すことができます。

PEP-8で推奨されているように、式全体を括弧で囲んで、厄介な行継続マーカーが不要になっていることに注意してください。\

:これが理想的な解決策であると言っているのではなく、関連する式を除外するためのより良い方法を見つけるまで、複雑さを管理する方法にすぎません。

cond1 = blue_percentage > (red_percentage * 0.49)
cond2 = red_percentage < ((blue_percentage / 1.44) + 1)
cond3 = red_percentage > ((blue_percentage / 4.35) - 1)

if (cond1 and cond2 and cond3 and 
    (blue_decimal > green_decimal) and  
    (red_decimal > green_decimal)):
    # do stuff ...

( )コード内の何も変更せずに、ifステートメントで大きな式の周りを使用して\文字を簡単に取り除くことができます-それらは時々問題の別の原因になる可能性があります。

于 2012-06-17T21:35:01.920 に答える