第1章 Python介绍
一、Python介绍
二、Python应用
三、Python发展
三、Python解释器
四、Python2和3区别
五、Python程序 hello world
六、Python变量
一、Python介绍
Python, 是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。
Python是纯粹的自由软件, 源代码和解释器CPython遵循 GPL(GNU General Public License)协议。
Python语法简洁清晰,特色之一是强制用空白符(white space)作为语句缩进。
Python具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中[3] 有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。需要注意的是在您使用扩展类库时可能需要考虑平台问题,某些可能不提供跨平台的实现。
二、Python应用
l 谷歌:Google App Engine 、code.google.com 、Google earth 、谷歌爬虫、Google广告等项目都在大量使用Python开发
l NASA: 美国航天局(NASA)大量使用Python进行数据分析和运算
l YouTube:世界上最大的视频网站YouTube就是用Python开发的
l Dropbox:美国最大的在线云存储网站,全部用Python实现,每天网站处理10亿个文件的上传和下载
l Instagram:美国最大的图片分享社交网站,每天超过3千万张照片被分享,全部用python开发
l Facebook:大量的基础库均通过Python实现的
l Redhat: 世界上最流行的Linux发行版本中的yum包管理工具就是用python开发的
l 豆瓣: 公司几乎所有的业务均是通过Python开发的
l 知乎: 国内最大的问答社区,通过Python开发(国外Quora)
l 春雨医生:国内知名的在线医疗网站是用Python开发的
l 除上面之外,还有搜狐、金山、腾讯、盛大、网易、百度、阿里、淘宝 、土豆、新浪、果壳等公司都在使用Python完成各种各样的任务。
三、Python发展
1989年,Guido开始写Python语言的编译器。
1991年,第一个Python编译器诞生。它是用C语言实现的,并能够调用C语言的库文件。从一出生,Python已经具有了:类,函数,异常处理,包含表和词典在内的核心数据类型,以及模块为基础的拓展系统。
Granddaddy of Python web frameworks, Zope 1 was released in 1999
Python 1.0 - January 1994 增加了 lambda, map, filter and reduce.
Python 2.0 - October 16, 2000,加入了内存回收机制,构成了现在Python语言框架的基础
Python 2.4 - November 30, 2004, 同年目前最流行的WEB框架Django 诞生
Python 2.5 - September 19, 2006
Python 2.6 - October 1, 2008
Python 2.7 - July 3, 2010
In November 2014, it was announced that Python 2.7 would be supported until 2020, and reaffirmed that there would be no 2.8 release as users were expected to move to Python 3.4+ as soon as possible
Python 3.0 - December 3, 2008 (这里要解释清楚 为什么08年就出3.0,2010年反而又推出了2.7?是因为3.0不向下兼容2.0,导致大家都拒绝升级3.0,无奈官方只能推出2.7过渡版本)
Python 3.1 - June 27, 2009
Python 3.2 - February 20, 2011
Python 3.3 - September 29, 2012
Python 3.4 - March 16, 2014
Python 3.5 - September 13, 2015
Python 3.6 - 2016-12-23 发布python3.6.0版
三、Python解释器
当我们编写Python代码时,我们得到的是一个包含Python代码的以.py为扩展名的文本文件。要运行代码,就需要Python解释器去执行.py文件。
Python解释器:CPython、IPython、PyPy、Jython、IronPython
编译型和解释型
编译型
优点:编译器一般会有预编译的过程对代码进行优化。因为编译只做一次,运行时不需要编译,所以编译型语言的程序执行效率高。可以脱离语言环境独立运行。
缺点:编译之后如果需要修改就需要整个模块重新编译。编译的时候根据对应的运行环境生成机器码,不同的操作系统之间移植就会有问题,需要根据运行的操作系统环境编译不同的可执行文件。
解释型
优点:有良好的平台兼容性,在任何环境中都可以运行,前提是安装了解释器(虚拟机)。灵活,修改代码的时候直接修改就可以,可以快速部署,不用停机维护。
缺点:每次运行的时候都要解释一遍,性能上不如编译型语言。
四、Python2和3区别
In summary : Python 2.x is legacy, Python 3.x is the present and future of the language.
Python3中没有int和long的区别只有int
C:\Users\think>python2
Python 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:53:40) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> a=9999999
>>> type(a) #查看变量a的类型
<type 'int'>
>>> a=999999999999999
>>> type(a)
<type 'long'>
>>> exit()
C:\Users\think>p
Python 3.6.0 (v3.6.0:41df79263a11, Dec 23 2016, 08:06:12) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> a=9999
>>> type(a)
<class 'int'>
>>> a=9999999999999999999999999999999999999
>>> type(a)
<class 'int'>
>>>
五、Python程序 hello world
>>> print('hello world')
hello world
六、Python变量
变量:使用一个字符串来表示一个变化的值,值不同的代码代表不同的意义。
>>> a=123
>>> type(a) #查看变量a的类型
<class 'int'>
>>> id(a) #查看变量a的内存地址
500675488
>>> a #查看变量a的值
123
变量的用法
>>> a='sheng'
>>> a
'sheng'
>>> print(a)
sheng
>>> a=1
>>> b=2
>>> a+b
3
>>> c=a+b
>>> c
3
>>>
变量名的规范
- 变量名只能是 字母、数字或下划线的任意组合
- 变量名的第一个字符不能是数字
- 以下关键字不能声明为变量名
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
变量的赋值内存之间的关系:
>>> name1='sheng'
>>> name2='leqi'
>>> id(name1)
32226752
>>> id(name2)
32226976
>>>
当name2=name1后的内存变化
>>> name1='sheng'
>>> name2='leqi'
>>> name2=name1
>>> id(name1)
32226752
>>> id(name2)
32226752
>>>
布尔值:
分别是True和Felse
字符串:
字符串是 Python 中最常用的数据类型。我们可以使用引号('或")来创建字符串。
创建字符串很简单,只要为变量分配一个值即可。例如:
>>> a='shenleqi'
>>> a[1]
'h'
>>> a[0:2] #从第0个开始取2个数
'sh'
>>> a[0:-1] #从第0个开始取到最后一个数
'shenleq'
>>> a[0:-1:2] #从第0个开始以步长为2, 取到最后一个数
'selq'
>>>
列表:
序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。
Python有6个序列的内置类型,但最常见的是列表和元组。
序列都可以进行的操作包括索引,切片,加,乘,检查成员。
此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法。
列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。
列表的数据项不需要具有相同的类型
创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示:
list1 = ['physics', 'chemistry', 1997, 2000];
list2 = [1, 2, 3, 4, 5 ];
list3 = ["a", "b", "c", "d"];
>>> a=['sheng','le','qi','123']
>>> a[1]
'le'
>>> a[3]
'123'
>>>
字典:
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:
d = {key1 : value1, key2 : value2 }
键必须是唯一的,但值则不必。
值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
一个简单的字典实例:
>>> a={'name':'sheng','age':'18'}
>>> a
{'name': 'sheng', 'age': '18'}
>>> a[name]
>>> a['name']
'sheng'
>>> a['age']
'18'
>>>
字典套字典:
>>> a['name']['age']
'sheng,18'
>>> a={'name':{'age':'18'}}
>>> a['name']
{'age': '18'}
>>> a['name']['age']
'18'
>>>
字典套列表:
>>> a={'name':['sheng','le','qi']}
>>> a['name']
['sheng', 'le', 'qi']
>>> a['name'][1]
'le'
字符串切片
>>> msg='sheng|le|qi|LQ'
>>> msg
'sheng|le|qi|LQ'
>>> msg.split('|')
['sheng', 'le', 'qi', 'LQ']
>>> user=msg.split('|')
>>> user[1]
'le'
>>> user[0]
'sheng'
>>>
多个字符串变量应用
name=input('name>>')
job=input('job>>')
age=input('age>>')
info='''
------ info of %s -----
----- name :%s
----- job : %s
----- age : %s
----- end of -----
'''%(name,name,job,age)
print(info)
使用列表和字典定义
info_test=[
{'username':'sheng','job':'IT1','age':'23'},
{'username':'lele','job':'IT2','age':'43'},
]
# print(info_test[0]['username'])
# print(info_test[1]['username1'])
info='''
------ info of %s -----
----- name :%s
----- job : %s
----- age : %s
----- end of -----
'''%(info_test[0]['username'],info_test[0]['username'],info_test[0]['job'],info_test[0]['age'])
print(info)