0

変数に特定の値を設定しようとしています。変数は、16 進数の色が緑、赤、青、または緑と赤、青と赤、または緑と青のいずれであるかを決定するためのものです。

何かが緑と赤であるか、赤だけであるか緑だけであるかを判断するために設定しようとしている値は、特定の数値範囲を持つことです。この範囲では、何かが緑と赤などとして修飾されます...

例: FF0000 = 赤。A1A100 = 赤と緑、A1C124 = 赤と緑。

私の A1C124 コードはスクリプトに問題があるでしょう。

if
Red > Green or \
Red = Green and \
Red > Blue
    print red and green.

そのコードが実行されると、明らかに赤いものはすべて緑と赤として表示されるからです。

その代わりに、私は緑よりも赤が大きくなる限界を設定しようとしており、その逆も同様です。そのためには、範囲を設定する必要があります。

次のようなもの:

redGreen = green +1
redGreen2 = green -1
redGreen3 = green + 2
redGreen4 = green - 2

そして、次のようなコードを設定します。

if red > blue and \
   green > blue:
    redGreen = green +1
    redGreen2 = green -1
    redGreen3 = green + 2
    redGreen4 = green - 2
    print "This colour is red and green"

しかし、2つの問題があります。

上記のコードは、+ 1 を +2 に置き換えるだけで機能しません。負の値についても同じです。これを教えてくれるチュートリアルは一生理解できません。

それで、誰かが範囲を設定する方法を知っていますか?または、より良い方法があれば、それが何であるかを説明できますか?

4

1 に答える 1

4

確かに、私はあなたの投稿を完全にフォローすることができませんでした。ただし、問題の色をHSV 空間に変換し、色相の値のみを確認すると、実行しようとしていることが簡単になる可能性があります。

Python は、colorsys.rgb_to_hsv()この変換を実行する関数を提供します。

于 2012-06-14T14:29:11.053 に答える