数据分析python技能之字符串转整数

在数据处理的过程中,经常需要从各种各样的数据中提取自己需要的数据。

现在遇到一个问题如下:

将某个字符串格式的字段s转换成整数做一些运算,如果字段内容是非数字的格式,那么就转换成0。

这里暂时先不考虑负数和浮点数以及各种16进制相关的数字的情况。


在python中字符串转换为整数非常简单,只需要一个int即可。

x = int(s)

But,在代码中直接这么写会出问题的。

如果s是一个' ',或者一个非数字格式的值,比如'fuck',那么python程序会抛出异常。

ValueError: invalid literal for int() with base 10: 'fuck'

这篇文章的主旨是如何优雅的处理这种情况。

我们追求的是「Pythonic, Clearest, Powerful One Line Code.」

None Pythonic的做法是直接捕捉ValueError错误:

try:
    x = int(s)
except ValueError as e:
    x = 0

Pythonic的做法是:

x = int(s) if s.isdigit() else 0

这就是python的强大简洁之处。


最后有一个问题:

如何用最优雅的方式判断一个string是否为numberic?考虑正数,负数,浮点数,科学计数法,各种进制表示方式?

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云霄雨霁

设计模式----状态模式

1550
来自专栏Zephery

2017-03-01学习笔记

知识点 1.java中只有值传递,没有引用传递http://guhanjie.iteye.com/blog/1683637 2.final关键字 final修饰...

3668
来自专栏mukekeheart的iOS之旅

Java基础——异常体系

在Java中,异常对象都是派生于Throwable类的一个实例,Java的异常体系如下图所示: ?    所有的异常都是由Throwable继承而来,在下一层立...

2807
来自专栏JavaEdge

Java异常之IllegalMonitorStateExceptionJavaDoc解决方法:总结

Thrown to indicate that a thread has attempted to wait on an object's monitor or...

573
来自专栏linux运维学习

linux学习第六十四篇:Shell脚本中的逻辑判断,文件目录属性判断, if特殊用法,case判断

Shell脚本中的逻辑判断 格式1:if 条件 ; then 语句; fi 格式2:if 条件; then 语句; else 语句; fi 格式3:if …; ...

3196
来自专栏数据结构与算法

3185 队列练习 1

3185 队列练习 1 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 给定一...

3046
来自专栏Java大联盟

Java面试手册:核心基础-3

2.数组有没有length()这个方法? String有没有length()这个方法?

1703
来自专栏coding

redis列表list类型详解

5562
来自专栏Python研发

Memcached·Redis缓存的基本操作

Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、...

1564
来自专栏别先生

python的学习和使用

1430

扫码关注云+社区

领取腾讯云代金券