我希望创建一个函数,只有在十六进制值表示大写或小写字母时才执行特定任务,即当十六进制代码在20和7A之间时。是否有一种在Python中的语句可以逻辑上等效于以下语句:
if a >= 20 and a <= 7A: perform stuff
我只需要在前面加上0x,然后神奇的事就发生了吗?
if a >= 20 and a <= 7A: perform stuff
我只需要在前面加上0x,然后神奇的事就发生了吗?
是的,你只需要加上0x前缀就可以把它变成数字了...
或者 int("7A",16) == 0x7A
0x20 <= a <= 0x7A
,你还可以像这样链接比较运算符(粗略地翻译为“a在val1和val2之间”)
ord('A') <= a <= ord('z')
来代替记住ASCII值(这并不是一个微不足道的胜利,因为原帖中'A'的ASCII值是错误的)。 - abarnert
a
是一个整数还是一个类似于"0x2A"
的字符串? - David Robinsona >= 0x41
吗?--chr(0x41)
=='A'
- mgilsona >= 0x41 and a <= 0x7a
(或者更易读的是ord('A') <= a <= ord('Z')
),这仍然是错误的,因为该范围内有6个非字母字符。为什么不使用chr(a).isalpha()
呢? - abarnert