如何設置值爲只接受Python中的某些數據?就像我爲一個顏色標識符編寫代碼一樣。我希望我的變量只接受高達FFFFFF
的任何值。基地 - 16個字符非常... 十六進制代碼。檢查錯誤
我想這樣做的原因是因爲如果用戶喜歡GGGGGG
值進入它會給他們一個腳本錯誤,這實際上讓我看起來不稱職(我可能是,但我不希望看起來像我)。而且,如果他們輸入像F1F2G%這樣的特殊字符,它也會陷入困境。另外,如果他們將框留空,它也會產生腳本錯誤。
我想避免這些錯誤。有誰知道一個好方法?
如何設置值爲只接受Python中的某些數據?就像我爲一個顏色標識符編寫代碼一樣。我希望我的變量只接受高達FFFFFF
的任何值。基地 - 16個字符非常... 十六進制代碼。檢查錯誤
我想這樣做的原因是因爲如果用戶喜歡GGGGGG
值進入它會給他們一個腳本錯誤,這實際上讓我看起來不稱職(我可能是,但我不希望看起來像我)。而且,如果他們輸入像F1F2G%這樣的特殊字符,它也會陷入困境。另外,如果他們將框留空,它也會產生腳本錯誤。
我想避免這些錯誤。有誰知道一個好方法?
這是一個方法假設輸入的字符串:
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
red_decimal = HEXTOINT(紅色)。 green_decimal = hexToInt(綠色) blue_decimal = hexToInt(藍色) 這些值與此衝突,因爲我有Int而不是字符串。對不起,沒有指定。 –
您還可以使用正則表達式中的設施再。
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
搜索器= re.compile([^ 0-9A-F] {1,6} $) ^ SyntaxError:無效的語法 這是我從中得到的錯誤? –
插入忘記的引號。 – ncmathsadist
您目前如何接受輸入?你現在在做什麼來驗證你的輸入? – sarnold
你可以使用try/catch塊嗎? – jgritty
輸入是字符串嗎? – Levon