如果把Python代码写成这样子就太难看了

本着博采众家之长的想法,前几天买了几本Python爬虫、大数据和机器学习方面的书回来看,故步自封、闭门造车是绝对不行的。粗略翻看了一下,学到了不少的东西,但是也发现了不少的问题,最大的问题就是感觉很多代码不够优雅,仅仅是匆匆忙忙完成功能而已,没有做任何的优化,也没有发挥Python语言的优势,明显是Python内功不够深厚的表现。

随手举个例子,就不说是从哪本书里看的了。下面这段代码用来检查给定字符串是否是合法IP地址:

def checkIP(ipAddress):

    if len(ipAddress.split('.')) == 4:

        flag = ipAddress.split('.')[0] in map(strrange(256))

        flag = flag and ipAddress.split('.')[1] in map(strrange(256))

        flag = flag and ipAddress.split('.')[2] in map(strrange(256))

        flag = flag and ipAddress.split('.')[3] in map(strrange(1, 255))

        return flag

    else:

        return False



吐血三升后,我做了如下改写:

def checkIP2(ipAddress):

    try:

        ipAddress = map(int, ipAddress.split('.'))

        ipAddress = list(filter(lambda item:0<=item<=255, ipAddress))

        assert len(ipAddress)==4 and (ipAddress[3] not in (0, 255))

        return True

    except:

        return False


Python代码素来以简洁和优雅著称,一个好的Python代码应该是漂亮的、优雅的,应该让人阅读时有身心愉悦的感觉,而不应该有发堵的感觉。而要写出足够优雅、足够Pythonic的代码,没有深厚的Python内功是很难做到的。

那么问题来了,Python内功应该怎么修炼呢?有没有啥宝典或者秘笈?答案是肯定的。继《Python程序设计基础》《Python程序设计(第2版)》《Python可以这样学》系列图书之后,董付国老师在清华大学出版社出版的《Python程序设计开发宝典》已于2017年8月1日在亚马逊、京东、当当、互动出版网和各地新华书店全面上架。为庆祝新书上架,清华大学出版社联合“赣江图书专营”淘宝店推出特价优惠活动,原价69元,新书上架期间超低价39.8元,可以复制下面的链接使用浏览器打开查看图书详情和购买:

https://detail.tmall.com/item.htm?spm=a1z10.3-b-s.w4011-14464369246.84.46f16db0roWfX4&id=557107249812&rn=339cbc9df2bac424664103917dedfbd2&abbucket=8&tbpm=3

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dongfuguo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值