python简介

1. python发展史

1989年,圣诞节Guido van Rossum开始发明python
1991年,发布第一个Python版本
2000年,发布python2.0稳定版
2008年,发布python3.0稳定版
2010年,发布python2.7稳定版
2020年,Python2将不再维护

2. python设计哲学

1. 优雅
2. 明确
3. 简洁

在python解释器中,执行语句:import this 可以查看python的设计哲学

Beautiful is better than ugly.
# 优美胜于丑陋(Python以编写优美的代码为目标)

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.
# 不要包容所有错误,除非你确定需要这样做(精准地捕获异常,不写except:pass风格的代码)
 
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.
# 虽然这并不容易,因为你不是 Python 之父(这里的Dutch是指Guido)

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!
# 命名空间是一种绝妙的理念,我们应当多加利用(倡导与号召)

3. python2与python3的版本大区别

1. print
    python2中print是一个语法结构,在print关键字之后空格,然后接需要打印的内容
    python3中print()是一个内置函数
2. int long
    python2中有long的数据类型(长整型)
    python3中只有int类型,增加了int的字节长度,保证整型数据的足够大
3. byte str
    python2的str是ASCII编码
    python3默认编码是Unicode(utf-8),具有byte类
4. python3的函数注释新特性
    参数注释:以冒号(:)标记,建议传入的参数类型
    返回值注释:以 -> 标记,建议函数返回的类型
5. range与xrange
    Python2:range返回的结果是一个列表,而xrange的结果是一个生成器,前者是直接开辟一块内存空间来保存列表,后者是边循环边使用,只有使用时才会开辟内存空间,所以当列表很长时,使用xrange性能要比range好。
    Python3:只有range的用法
6. 除法的区别:
    python2:int/int=int
    python3:int/int(不整除的情况下会得到float,整除时得到int)

上一篇:linux在所有文件中查找某一个字符


下一篇:python之禅--理念