Python的优缺点
Python的优点很多,简单的可以总结为以下几点。
- 简单和明确,做一件事只有一种方法。
- 学习曲线低,跟其他很多语言相比,Python更容易上手。
- 开放源代码,拥有强大的社区和生态圈。
- 解释型语言,天生具有平台可移植性。
- 支持两种主流的编程范式(面向对象编程和函数式编程)都提供了支持。
- 可扩展性和可嵌入性,可以调用C/C++代码,也可以在C/C++中调用Python。
- 代码规范程度高,可读性强,适合有代码洁癖和强迫症的人群。
Python的缺点主要集中在以下几点。
- 执行效率稍低,因此计算密集型任务可以由C/C++编写。
- 代码无法加密,但是现在很多公司都不销售卖软件而是销售服务,这个问题会被淡化。
- 在开发时可以选择的框架太多(如Web框架就有100多个),有选择的地方就有错误。
Python代码守则
-
变量、函数和属性应该使用小写字母来拼写,如果有多个单词就使用下划线进行连接。
-
类中受保护的实例属性,应该以一个下划线开头。
-
类中私有的实例属性,应该以两个下划线开头。
-
类和异常的命名,应该每个单词首字母大写。
-
模块级别的常量,应该采用全大写字母,如果有多个单词就用下划线进行连接。
-
类的实例方法,应该把第一个参数命名为self以表示对象自身。
-
类的类方法,应该把第一个参数命名为cls以表示该类自身。
-
采用内联形式的否定词,而不要把否定词放在整个表达式的前面。例如if a is not b就比if not a is b更容易让人理解。
-
不要用检查长度的方式来判断字符串、列表等是否为None或者没有元素,应该用if not x这样的写法来检查它。
-
就算if分支、for循环、except异常捕获等中只有一行代码,也不要将代码和if、for、except等写在一起,分开写才会让代码更清晰。
-
import语句总是放在文件开头的地方。
-
引入模块的时候,from math import sqrt比import math更好。
-
如果有多个import语句,应该将其分为三部分,从上到下分别是Python标准模块、第三方模块和自定义模块,每个部分内部应该按照模块名称的字母表顺序来排列。
运算符
进制
二进制(如0b100,换算成十进制是4)、八进制(如0o100,换算成十进制是64)、十进制(100)和十六进制(0x100,换算成十进制是256)
书籍推荐
- 入门读物
《Python基础教程》(Beginning Python From Novice to Professional)
《Python学习手册》(Learning Python)
《Python编程》(Programming Python)
《Python Cookbook》
《Python程序设计》(Python Programming: An Introduction to Computer Science)
《Modern Python Cookbook》
- 进阶读物
《Python核心编程》(Core Python Applications Programming)
《流畅的Python》(Fluent Python)
《Effective Python:编写高质量Python代码的59个有效方法》(Effective Python 59 Specific Ways to Write Better Python)
《Python设计模式》(Learning Python Design Patterns)
《Python高级编程》(Expert Python Programming)
《Python性能分析与优化》(Mastering Python High Performance)
- Web框架
《Django基础教程》(Tango with Django)
《轻量级Django》(Lightweight Django)
《Python Web开发:测试驱动方法》(Test-Driven Development with Python)
《Web Development with Django Cookbook》
《Test-Driven Development with Django》
《Django Project Blueprints 》
《Flask Web开发:基于Python的Web应用开发实战》(Flask Web Development: Developing Web Applications with Python)
《深入理解Flask》(Mastering Flask)
- 爬虫开发
《用Python写网络爬虫》(Web Scraping with Python)
《精通Python爬虫框架Scrapy》(Learning Scrapy)
《Python网络数据采集》(Web Scraping with Python)
《Python爬虫开发与项目实战》
《Python 3网络爬虫开发实战》
- 数据分析
《利用Python进行数据分析》(Python for Data Analysis)
《Python数据科学手册》(Python Data Science Handbook)
《Python金融大数据分析》(Python for Finance)
《Python数据可视化编程实战》(Python Data Visualization Cookbook)
《Python数据处理》(Data Wrangling with Python)
- 机器学习
《Python机器学习基础教程》(Introduction to Machine Learning with Python)
《Python机器学习实践指南》(Python Machine Learning Blueprints)
《Python Machine Learning Case Studies》
《Python机器学习实践:测试驱动的开发方法》(Thoughtful Machine Learning with Python A Test Driven Approach)
《Python机器学习经典实例》(Python Machine Learning Cookbook)
《TensorFlow:实战Google深度学习框架》