栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

检查字符串是否为十六进制

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

检查字符串是否为十六进制

(1)
使用int()可以很好地解决此问题,Python会为您完成所有检查:)

int('00480065006C006C006F00200077006F0072006C00640021', 16)6896377547970387516320582441726837832153446723333914657L

将工作。万一失败,您将收到一个

ValueError
例外。

简短示例:

int('af', 16)175int('ah', 16) ...ValueError: invalid literal for int() with base 16: 'ah'

(2) 一种 替代
将遍历数据,并确保所有字符落入的范围内

0..9
a-f/A-F
string.hexdigits
'0123456789abcdefABCDEF'
因为它包含)是这个有用的
两个 上和下壳体数字。

import stringall(c in string.hexdigits for c in s)

会根据string中数据的有效性返回

True
或。
False``s

简短示例:

s = 'af'all(c in string.hexdigits for c in s)Trues = 'ah'all(c in string.hexdigits for c in s)False

注意事项

正如@ScottGriffiths在下面的注释中正确指出的那样,

int()
如果您的字符串
0x
开头包含该方法,则该方法将起作用,而逐字符检查将因此失败。同样,检查一
字符比 一串
字符要快,但是值得怀疑的是,这对于短的SMS字符串会很重要,除非您依次处理许多(很多!)字符,在这种情况下,您可以将stringhexditigs转换为一组字符与
set(string.hexdigits)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/625263.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号