>>> import thisThe Zen of Python, by Tim PetersBeautiful is better than ugly.Explicit is better than implicit.Simple is better than complex.Complex is better than complicated.Flat is better than nested.Sparse is better than dense.Readability counts.Special cases aren't special enough to break the rules.Although practicality beats purity.Errors should never pass silently.Unless explicitly silenced.In the face of ambiguity, refuse the temptation to guess.There should be one-- and preferably only one --obvious way to do it.Although that way may not be obvious at first unless you're Dutch.Now is better than never.Although never is often better than *right* now.If the implementation is hard to explain, it's a bad idea.If the implementation is easy to explain, it may be a good idea.Namespaces are one honking great idea -- let's do more of those!
Python 开发者哲学是 “用一种方法,最好是只有一种方法来做一件事”。在Python解释器内运行 import this 可以获得 “Python格言” 完整的列表。
Python优点:
Python缺点:
云计算:云计算最火的语言,典型应用OpenStack
WEB开发
人工智能
系统运维
金融
大数据
图形GUI
编译和解释型语言的区别
CPU不能直接认识并执行我们写的语句,它只能认识机器语言(CPU指令集;二进制的形式);因此我们开发语言的Virtual Machine要将识别的开发语言转换成机器语言让CPU去执行;那么就有两种以下的方式:
编译型 | 解释型 | 混合型 |
C | JavaScript | Java |
C++ | Python | C# |
GO | Ruby | |
Swift | PHP | |
Object-C | Perl |
编译和解释型的优缺点
点 | 编译型语言 | 解释型语言 |
优点 | 编译器一般会在预编译的过程对代码进行优化。因为编译只做一次,运行时不需要编译,所以编译型语言的程序执行效率高,可以脱离语言环境独立运行。 | 良好的平台兼容性,在任何环境中都可以运行,前提是安装了解释器(虚拟机)。灵活,修改代码的时候直接修改就可以,可以快速部署,不用停机维护。 |
缺点 | 编译之后如果需要修改就需要整个模块重新编译。编译的时候根据对应的运行环境生成机器码,不同的操作系统之间移植就会有问题,需要根据运行的操作系统环境编译不同的可执行文件。 | 每次运行的时候都要解释一遍,性能上不如编译型语言。 |
静态和动态语言
动态类型语言 | 静态类型语言 |
动态类型语言是指在运行期间才去做数据类型检查的语言,也就是说,在用动态的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部数据类型记录下来。Python和Ruby就是一种典型的动态类型语言,其他的各种脚本语言如VBScript也多少属于动态类型语言。 | 静态类型语言与动态类型语言刚好相反,它的数据类型是在编译期间检查的,也就是说在写程序时要声明所有变量的数据类型,C/C++是静态类型语言的典型代表,其他的静态类型语言还有C#,Java等。 |
强类型和弱类型语言
强类型定义语言在速度上可能略逊色于弱类型定义语言,但是强类型定义语言带来的严谨性能够有效地避免许多错误。另外,“这门语言是不是动态语言” 与 “这门语言是否类型安全之间” 是完全没有联系的。
强类型定义语言 | 弱类型定义语言 |
强制数据类型定义的语言,也就是说,一旦一个变量被制定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。例如:定义了一个整形变量a,那么程序根本不可能将a当作字符串类型处理。强类型定义语言是类型安全的语言。 | 数据类型可以被忽略的语言,它与强类型定义语言相反,一个变量可以赋不同数据类型的值 |
编程语言 | 特点 |
C/C++ | 编译型、静态语言、强类型 |
GO | 编译型、静态语言、强类型 |
Python | 解释型、动态语言、强类型 |
JavaScript | 解释型、动态语言、弱类型 |
Java | 混合型(本质是解释型)、静态语言、强类型 |