检查错误

时间:2012-06-15 01:08:45

标签: python

如何将值设置为仅接受Python中的某些数据?就像我正在为颜色标识符制作代码。我希望我的变量只接受最多FFFFFF任何大于此值的变量。基本16个字符几乎...... 十六进制代码

我尝试这样做的原因是因为如果用户输入类似GGGGGG的值,它会给他们一个脚本错误,这实际上让我看起来不称职(我可能是,但我不想看起来像我。)而且,如果他们输入像F1F2G%这样的特殊字符,它也会陷入困境。此外,如果他们将框保留为空白,则还会出现“脚本错误”。

我想避免这些错误。有谁知道一个好方法?

3 个答案:

答案 0 :(得分:11)

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

if val > int("FFFFFF", 16):
    # Value is too large

答案 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

答案 2 :(得分:1)

您也可以在re中使用regex工具。

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