python - 在 Python2 和 3 中使用 isnumeric
问题描述
处理具有接受值的函数的应用程序,我试图查看它是int
,float
还是string
. 在网上做了一些查找后,我发现isnumeric()
并isdigit()
涵盖了 int 和 float 场景,并且 string 是默认的。
太棒了...问题解决了:)
不完全是!因为这个应用程序支持 Python 版本2.7.15
, 3.4.8
, 3.5.5
,3.6.6
并且我了解到 Python 2 isumeric 和 isdigit 适用于 unicode 而 Python 3 适用于字符串。
所以我的 CI 通过了 Python 3 的测试,但没有通过 Python 2 :(
有没有办法检查正在动态运行的 Python 版本,并从那里使用正确的函数实现?
解决方案
首先,您也可以在 Python 2.x 中使用isalpha()
和isdigit()
处理字符串。其次,您可以尝试将变量转换为float
并int
查看操作是否引发异常。
for x in ['aa', '2.3', '4']:
try:
x = int(x)
print x, ' is integer'
continue
except:
pass
try:
x = float(x)
print x, 'is float'
continue
except:
pass
print x, 'is string'
aa is string
2.3 is float
4 is integer
推荐阅读
- java - Spring MVC 控制器测试
- python - Plotly:烛台图的恒定尖峰线
- flutter - 如何在两个全宽小部件之间滑动过渡?
- r - 带 R 的列线图
- android-source - 从 Android 11 引入的使用 GKI 的 Android 内核构建流程
- kubernetes - 不同数据中心上的 Kubernetes 节点导致运行缓慢
- c# - 将所有表单始终放在最前面 - 将一个设置应用于多个表单
- c++ - 如何使用 coc-clangd/coc-nvim 手动(不使用键绑定)搜索源代码中的符号?
- css - 在 ionic 4+ 中设置 ion-toolbar shadow dom 的 .toolbar-container
- python - 如何修复 python 脚本(电子邮件侦听器)