16本Python系列教材作者董付国揭秘如何编写有Python味道的Python代码?

2020 年 1 月 8 日 新智元










  新智元报道  

编辑:元子
【新智元导读】Python到底有多火?它的应用领域有哪些?动手编辑代码时感觉无从下手怎么办?1月6日新智元小程序【大咖专访】栏目特邀16本Python系列教材作者董付国教授,深度揭秘「如何编写有"Python味道"的Python代码?」 直播中,新智元小程序用户参与度超高,反响强烈,我们也精选了一些互动问答共同与大家分享。「福利:1月9日,微信AI算法专家阙文晖开讲“推荐系统架构从0到1”,戳右边链接上 新智元We站公开课 了解更多!」


Python到底有多火?它的应用领域有哪些?动手编辑代码时感觉无从下手怎么办?1月6日新智元小程序【大咖专访】栏目特邀16本Python系列教材作者董付国教授,深度揭秘「如何编写有"Python味道"的Python代码?」 直播中,新智元小程序用户参与度超高,反响强烈,我们也精选了一些互动问答共同与大家分享。



一开场,董老师就告诉我们一个"终极真理",敲代码一定要思路先行,而使用Python编程,一定要用最直接的思路考虑和解决问题。


Python编码规范:不仅要思路可行、布局优雅,还要有很强的可读性


比如缩进,同一个级别代码块的缩进量必须相同,一般以4个空格为基本缩进单位;而每个import语句只导入一个模块,最好按照标准库、扩展库、自定义库的顺序依次导入。此外还包含必要的空格与空行,如运算符两侧、逗号后面建议增加一个空格。


Q1、关于必要的空格,老师能不能总结下?

董老师:运算符两侧和逗号后面可以增加一个空格,调用函数和方法时括号内参数赋值的参数名和值之间可以没有空格。



初学者福利:Python编程常见错误大汇总


标识符命名错误、函数或方法使用错误、惰性求值对象用法错误等编程中常出现的12个错误全盘奉上,保你实战中少犯错。

Q2、使用过程中,多个版本环境令人烦恼怎么办?

董老师:不用纠结版本,直接使用3.7以上就可以了,最新的几个版本之间区别不是很大。


Q3:老师可以简单说下类的浅拷贝和深拷贝吗?

董老师:深拷贝时一直递归到可哈希的值,浅拷贝是只复制一层。


直播中,针对编程语言中严格规定的不同运算符的优先级,董老师给出了各种运算符的优先级顺序,但并不建议记忆这些顺序,而是在适当的位置使用括号来说明表达式的计算顺序,增加代码可读性。



Python语言的应用领域与它的生态圈


目前,Python已经渗透到了系统安全、科学计算可视化、逆向工程与软件分析、人工智能、网站开发、数据爬取与大数据处理、系统运维、自然语言处理、电子电路设计、游戏设计与策划、移动终端开发、树莓派开发等几乎所有专业和领域,其特点在于易学易用、语法简洁和强大的标准库和丰富的扩展库。

Q4、董老师您好!想请教您一个关于多个文件读数据的问题。我有若干个大文件(每个文件几千万行)中的数据需要提取分析,我现在用readlines方法一次读取整个文件的内容,发现内存占用太多,但是用readline一行行读数据处理,速度特别慢。请问老师有什么方法推荐吗?

董老师:直接使用for循环遍历文件对象即可


Q5、用python做数据处理时,经常会用到切片索引,但切片索引很容易混乱,请问老师有没有什么好的方法简易清楚?

董老师:切片记住3个数字的含义,再注意是左闭右开区间就可以了。


Q6、老师可否出个Python的学习路线,python全栈工程师方向的!另外想请教一下老师,对一份银行微博语料想做一个线上和线下的区分,老师有没有好用的模型推荐,谢谢老师

董老师:永远都不要相信全栈,那都是忽悠人的,一个人能做好两三个,就很厉害了。线上线下区分的关键应该是数据的实际组织形式来制定规则。


Q7、有个问题想请教下董老师,Python目前在各大领域势头都很猛,但同时也展现了他适用范围的广泛。作为一门语言,在未来一段时间,他依然保持这样良好的势头吗?另外,因为太过多样性,我们处在不同领域,该怎样抉择自己使用的部分呢?害怕难以看到全局,在部分功能中跌跌撞撞

董老师:在未来几年是没问题的。Python扩展库太多,一定不要试图全都学会,要结合自己工作需要去学习特定的扩展库就行,够用就好,按需学习。


最后,董付国老师表示,使用Python时应以快速解决问题为目的,不可在语言细节上浪费太多时间,并大家奉上一系列优雅的代码欣赏:

想要获得董付国老师完整PPT的朋友,请添加新智元小助手微信:Xzy_Xiaoxin


【下期预告】本周四,新智元小程序大咖专访第二期即将上线,本期公开课聚焦"推荐算法",特邀腾讯微信人工智能高级研究员阙文晖,教你从0到1搭建算法推荐系统架构。


扫描下方海报二维码即刻报名「新智元We站公开课」 微信人工智能高级研 究员的阙文晖 手把手教你 从0到1快速搭建推荐算法系统架构。
登录查看更多
0

相关内容

Python是一种面向对象的解释型计算机程序设计语言,在设计中注重代码的可读性,同时也是一种功能强大的通用型语言。
一份简明有趣的Python学习教程,42页pdf
专知会员服务
76+阅读 · 2020年6月22日
【实用书】Python技术手册,第三版767页pdf
专知会员服务
229+阅读 · 2020年5月21日
《深度学习》圣经花书的数学推导、原理与Python代码实现
算法与数据结构Python,369页pdf
专知会员服务
160+阅读 · 2020年3月4日
【书籍推荐】简洁的Python编程(Clean Python),附274页pdf
专知会员服务
173+阅读 · 2020年1月1日
Python 3.8.0来了!
数据派THU
5+阅读 · 2019年10月22日
你真的会正确地调试 TensorFlow 代码吗?
数据库开发
7+阅读 · 2019年3月18日
植树节,送 25 本AI & NLP & Python相关书籍
AINLP
20+阅读 · 2019年3月12日
82个Python机器学习代码和实践案例让你受益终生!
算法与数据结构
21+阅读 · 2018年12月26日
Python 杠上 Java、C/C++,赢面有几成?
CSDN
6+阅读 · 2018年4月12日
Python为啥这么牛?
Python程序员
3+阅读 · 2018年3月30日
快乐的迁移到 Python3
Python程序员
5+阅读 · 2018年3月25日
Python 如何快速入门?
全球人工智能
6+阅读 · 2018年3月15日
教你用Python来玩跳一跳
七月在线实验室
6+阅读 · 2018年1月2日
Python 书单:从入门到……
Linux中国
38+阅读 · 2017年8月6日
Meta-Learning to Cluster
Arxiv
17+阅读 · 2019年10月30日
Arxiv
22+阅读 · 2018年8月30日
Arxiv
5+阅读 · 2018年3月28日
VIP会员
相关VIP内容
一份简明有趣的Python学习教程,42页pdf
专知会员服务
76+阅读 · 2020年6月22日
【实用书】Python技术手册,第三版767页pdf
专知会员服务
229+阅读 · 2020年5月21日
《深度学习》圣经花书的数学推导、原理与Python代码实现
算法与数据结构Python,369页pdf
专知会员服务
160+阅读 · 2020年3月4日
【书籍推荐】简洁的Python编程(Clean Python),附274页pdf
专知会员服务
173+阅读 · 2020年1月1日
相关资讯
Python 3.8.0来了!
数据派THU
5+阅读 · 2019年10月22日
你真的会正确地调试 TensorFlow 代码吗?
数据库开发
7+阅读 · 2019年3月18日
植树节,送 25 本AI & NLP & Python相关书籍
AINLP
20+阅读 · 2019年3月12日
82个Python机器学习代码和实践案例让你受益终生!
算法与数据结构
21+阅读 · 2018年12月26日
Python 杠上 Java、C/C++,赢面有几成?
CSDN
6+阅读 · 2018年4月12日
Python为啥这么牛?
Python程序员
3+阅读 · 2018年3月30日
快乐的迁移到 Python3
Python程序员
5+阅读 · 2018年3月25日
Python 如何快速入门?
全球人工智能
6+阅读 · 2018年3月15日
教你用Python来玩跳一跳
七月在线实验室
6+阅读 · 2018年1月2日
Python 书单:从入门到……
Linux中国
38+阅读 · 2017年8月6日
Top
微信扫码咨询专知VIP会员