Python3中字符串/字符与数字比较失效的原因咨询
问题原因与解决方法
为什么Python里不能这么写?
在C++中,char本质是整数类型(对应字符的ASCII值),直接拿字符和整数做比较时,编译器会自动完成类型转换,逻辑能正常运行。但Python里的字符串元素是字符串对象(str),不是整数,Python严格禁止字符串与整数直接进行大小比较,这就是你触发错误的核心原因。
两种解决方式
- 复刻C++的ASCII比较逻辑:用
ord()函数把字符转换成对应的ASCII整数再比较ord(token[i]) >= 47 and ord(token[i]) <= 57ord(c)函数会返回字符c对应的ASCII码值,这样就能和整数47、57正常做大小判断了。 - 更符合Python风格的写法(如果你的需求是判断字符是否为0-9数字):直接用字符串的
isdigit()方法
这个方法会直接返回布尔值,判断当前字符是否是十进制数字,代码更简洁直观。token[i].isdigit()
内容的提问来源于stack exchange,提问作者devacius the one above all
相关产品推荐
相关产品推荐

