2

Pythonで特定のデータのみを受け入れるように値を設定するにはどうすればよいですか?私が色識別子のコードを作っているように。FFFFFF変数がそれよりも大きいものまでしか受け入れないようにしたい。基数16文字はほとんど... 16進コード

私がこれを行おうとしている理由は、ユーザーがそのような値を入力するGGGGGGと、スクリプトエラーが発生し、実際には無能に見えるためです(私はそうかもしれませんが、私は自分のようにはなりたくありません)。また、F1F2G%のような特殊文字を入力すると、それも混乱します。さらに、ボックスを空白のままにすると、スクリプトエラーも発生します。

私はそれらのエラーを避けたいです。誰かが良い方法を知っていますか?

4

3 に答える 3

11
try:
    val = int(hex_val, 16)
except ValueError:
    # Not a valid hex value

if val > int("FFFFFF", 16):
    # Value is too large
于 2012-06-15T01:15:20.687 に答える
1

これは、入力が文字列であると仮定した場合の1つのアプローチです。

import string

def check_HEX(input):
    for l in input:
        if l not in string.hexdigits:
            return False
    return True

与える:

print check_HEX('FFFFFF') # True
print check_HEX('FFFZFF') # False
print check_HEX(' ')      # False
print check_HEX('F1F2G%') # False
于 2012-06-15T01:17:30.900 に答える
1

reで正規表現機能を使用することもできます。

val = val.upper()
seeker = re.compile("^[0-9A-F]{1,6}$")

if seeker.search(val):
    hexCode = int(val, 16)
    # process a good value
else:
    #bail
于 2012-06-15T01:27:31.227 に答える