Python一个 高级语言
2017-09-19
1.1 Python背景简介(感谢伟大的廖雪峰大佬带我们走上一条光头路,嘿嘿)
写了大半年Python代码,感觉收获不是很大,都是现学现卖,没有系统的了解过这个语言究竟是什么样的,从头学一遍
提升一下。
Python的来源
Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言。
Python适用对象
c语言与Python对比:
c比较适合编写操纵系统等追求内存使用,能充分发挥硬件性能要要求高的程序;
Python 适合编写应用程序,web,爬虫,sdn等敏捷开发的需求(例如YouTube、Instagram,还有国内的豆瓣。很多大公司,
包括Google、Yahoo等,甚至NASA(美国航空航天局)都大量地使用Python。);
python的缺点
(一)、Python是解释性语言,运行之前需要cpu进行解释执行,c和Java在编译后直接运行机器码就好;
(二)、Python发版不能加密,这也是由于它是解释性语言
Python解释器: 官方解释器->cpython 在安装Python后就拥有cpython解释器,它由c编写完成,在命令行输入Python后就调
用cpython解释器,我们所有代码豆油cPython解释执行;Python解释器分为多种,我们用到的基本都是cpython。
1.2 Python中的变量:
Python是动态语言,可以将任意数据类型值赋给变量,可多次赋值
1.2.1 内存机制:
创建一个变量
a=1
Python解释器将在 : 1、内存中创建一个名为a的变量,
2、内存中创建一个变量 1 。
3、将a指向1
也可以把一个变量a
赋值给另一个变量b
,这个操作实际上是把变量b
指向变量a
所指向的数据,例如下面的代码:
a = 'ABC' b = a a = 'XYZ' print(b)
最后一行打印出变量b
的内容到底是'ABC'
呢还是'XYZ'
?如果从数学意义上理解,就会错误地得出b
和a
相同,也应该是'XYZ'
,但实际上b
的值是'ABC'
,让我们一行一行地执行代码,就可以看到到底发生了什么事:
执行a = 'ABC'
,解释器创建了字符串'ABC'
和变量a
,并把a
指向'ABC'
:
执行b = a
,解释器创建了变量b
,并把b
指向a
指向的字符串'ABC'
:
执行a = 'XYZ'
,解释器创建了字符串'XYZ',并把a
的指向改为'XYZ'
,但b
并没有更改:
所以,最后打印变量b
的结果自然是'ABC'
了。
Python支持多种数据类型,在计算机内部,可以把任何数据都看成一个“对象”,而变量就是在程序中用来指向这些数据对象的,对变量赋值就是把数据和变量给关联起来。
Python有五个标准的数据类型:
- Numbers(数字)
- String(字符串)
- List(列表)
- Tuple(元组)
- Dictionary(字典)
其中属于集合类型的数据类型有 列表、元组及字典。
2.1 Python字符串
在Python3中,字符串以Unicode为编码格式,所以Python支持多语言。
对于单个字符的编码,Python提供了ord()
函数获取字符的整数表示,chr()
函数把编码转换为对应的字符:
>>> ord('A') 65 >>> ord('中') 20013 >>> chr(66) 'B' >>> chr(25991) '文'
3、python 中的拷贝
引用和copy(),deepcopy()的区别
import copy a = [1, 2, 3, 4, ['a', 'b']] #原始对象 b = a #赋值,传对象的引用 c = copy.copy(a) #对象拷贝,浅拷贝 d = copy.deepcopy(a) #对象拷贝,深拷贝 a.append(5) #修改对象a a[4].append('c') #修改对象a中的['a', 'b']数组对象 print 'a = ', a print 'b = ', b print 'c = ', c print 'd = ', d 输出结果: a = [1, 2, 3, 4, ['a', 'b', 'c'], 5] b = [1, 2, 3, 4, ['a', 'b', 'c'], 5] c = [1, 2, 3, 4, ['a', 'b', 'c']] d = [1, 2, 3, 4, ['a', 'b']]
4、Python的is 和 ==的区别
is 比较内存地址 == 比较值