学习
实践
活动
工具
TVP
写文章

Python如何将str安全地转换为int类型

应用场景

最近在一个 Django 的 Ajax 应用中,发现了一个小问题:页面中有一个输入框,希望用户输入一个4位数,然后通过 ajax 方式提交到后端作存储。

在后端接收到 Post 参数时,需要将其转换为 int 类型,然后存储。因为这是一个无关紧要的参数,所以即便是用户非法输入也没有关系。也就是说:如果为空、或者非数字类型的话,存储为0即可。

但是 Python 库中的 int(x)方法,在转换过程中,若不符合数值类型,则会发生异常。如下:

那么,有什么安全的方法呢?对于一些无关紧要的参数,取值异常时赋为默认值即可,不要影响主方法的正常执行。

在网上搜索了一下,我希望能够找到类似 Java 中的一样的类库,但是很遗憾,没有找到。

处理方法

不知道 Python 中有没有类似的无异常转换的库?暂时找不到的话,只能手写一个了。

虽然感觉比较 low,但是起码不用在很多地方 try了。

deftoint(x,default_value=):r=None

try:r=int(x)except:r=default_value

returnr

print(toint("123"))#=> 123

print(toint("100.05"))#=> 0

print(toint("2018"))#=> 2018

print(toint("None"))#=> 0

题外话

我在学习 Python的过程中,是跳跃式的。很多时候,是现学现用,并没有系统化地一点点学习和编码演练。虽然,这样能够节约很多时间,但是也会导致很多基础性知识掌握得较弱。在有时间的情况下,还是希望自己能够系统化地、深入地学习一下。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180424G0QYL100?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券