2012-11-13 45 views
1

我想創建一個函數,只有當十六進制值表示大寫或小寫字母,即十六進制代碼介於20和7A之間時,才執行某個任務。有沒有一種方法可以在Python中進行邏輯上等同的聲明:使用比較運算符的十六進制值

if a >= 20 and a <= 7A: perform stuff 

?我只是在它前面拋出一個0x併發生魔法?

+1

是」a「整數還是像」「0x2A」'這樣的字符串? –

+1

你不想要'a> = 0x41'嗎? - 'chr(0x41)'==''A'' – mgilson

+0

事實上,即使你做了'a> = 0x41和a <= 0x7a'(或者更可讀的'ord('A')<= a <='ord('Z')',它仍然是錯誤的,因爲在該範圍內有6個非字母字符。爲什麼不用鏈接比較的'chr(a).isalpha()'? – abarnert

回答

8

是...你只是拋出一個0X併成爲數字....

int("7A",16) == 0x7A

0x20 <= a <= 0x7A你也可以比較連鎖經營這樣的(這大致解釋爲「是VAL1之間的和val2「)

+0

+1! –

+0

,甚至更好,你可以做'ord('A')<= a <= ord('z')'而不必記住ASCII值(這不僅僅是一個微不足道的勝利,因爲OP得到了'A'的ASCII值錯誤)。 – abarnert