使用比较运算符比较十六进制数值

4
我希望创建一个函数,只有在十六进制值表示大写或小写字母时才执行特定任务,即当十六进制代码在20和7A之间时。是否有一种在Python中的语句可以逻辑上等效于以下语句:
if a >= 20 and a <= 7A: perform stuff

我只需要在前面加上0x,然后神奇的事就发生了吗?


1
a 是一个整数还是一个类似于 "0x2A" 的字符串? - David Robinson
1
你不想要 a >= 0x41 吗?-- chr(0x41) == 'A' - mgilson
事实上,即使您执行 a >= 0x41 and a <= 0x7a(或者更易读的是 ord('A') <= a <= ord('Z')),这仍然是错误的,因为该范围内有6个非字母字符。为什么不使用 chr(a).isalpha() 呢? - abarnert
1个回答

12

是的,你只需要加上0x前缀就可以把它变成数字了...

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

0x20 <= a <= 0x7A ,你还可以像这样链接比较运算符(粗略地翻译为“a在val1和val2之间”)


1
而且更好的是,你可以使用ord('A') <= a <= ord('z')来代替记住ASCII值(这并不是一个微不足道的胜利,因为原帖中'A'的ASCII值是错误的)。 - abarnert

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接