Python学习笔记 - 基础知识总结01
1. Python 适合什么
a. Web网站和各种网络服务
b. 系统工具和脚本
c. 作为胶水语言把其他语言开发的模块包装起来以方便使用
Python 不适合什么
a. 不适合贴近硬件的代码
b. 不适合移动开发
c. 游戏开发
Python缺点:源码无法加密
2. Python 数据类型
a. Python 数据类型包括整形,浮点型,字符串(可以用''或""括起来),布尔值,空值None
Ps.对于字符串,一般可以用单引号''括起来,但如果字符串中含有(‘)等特殊组合字符时,可以使用双引号""及转义字符(\)进行处理;
b. Raw字符串(如果一个字符串很多需要转义的字符,对每一个字符都进行转义会很麻烦,就可以用raw字符串,即在字符串的前面加上一个r,这样里面的字符就不需要转义了):
例:print r'\(~_~)/ \(~_~)/'
c. 多行字符串,可以用'''...'''表示:
例:'''Line 1
Line 2
Line 3'''
上面这个字符串的表示方法和下面的是完全一样的:
'Line 1\nLine 2\nLine 3'
d. 字符串编码:
因为Python的诞生比Unicode标准发布的时间还要早,所以最早的Python只支持ASCII编码,普通的字符串'ABC'在Python内部都是ASCII编码的。Python在后来添加了对Unicode的支持,以Unicode表示的字符串用u'...'表示,比如:print u'中文'
Ps.如果中文字符串在Python环境下遇到 UnicodeDecodeError,这是因为.py文件保存的格式有问题。可以在第一行添加注释 # -*- coding: utf-8 -*- .目的是告诉Python解释器,用UTF-8编码读取源代码。然后用Notepad++ 另存为... 并选择UTF-8格式保存。
e. 多行unicode
u'''Line 1
Line 2'''
f. ur结合使用
ur'''Python的Unicode字符串支持"中文",
"日文",
"韩文"等多种语言'''
3. Python解释器的提示符,并非代码的一部分:
>>>
4. print语句
a. print语句跟上多个字符串,用逗号“,”隔开,就可以连成一串输出,如: print 'Hello','World!'
Ps.print语句遇到逗号“,”会输出一个空格,
b. 打印计算结果:print 75 +25
5. 注释 #
6. 变量
a. 变量由字母(大小写英文),数字及下划线的组合,且不能以数字开头;
b. Python是一种动态语言;
动态语言:变量本身类型不固定资产的语言,反之则为静态语言;
c. 变量在内存中的表示:
如:a='ABC',Python先在内存中创建了一个‘ABC’的字符串,然后在内存中新建了一个名为a的变量,然后将其指向'ABC';
d. 变量使用举例:
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'
了。
7. Python中的整型和浮点数
Python的整数运算结果仍然是整数,浮点数运算结果仍然是浮点数。但是整数和浮点数混合运算的结果就变成浮点数了:
8. Python中的布尔类型:
a. 在Python中,布尔类型还可以与其他数据类型做 and、or和not运算,请看下面的代码:
a = True print a and 'a=T' or 'a=F'
计算结果不是布尔类型,而是字符串 'a=T',这是为什么呢?因为Python把0
、空字符串''
和None
看成 False, 其他数值和非空字符串都看成 True,所以:
True and 'a=T' 计算结果是 'a=T' 继续计算 'a=T' or 'a=F' 计算结果还是 'a=T'
要解释上述结果,又涉及到 and 和 or 运算的一条重要法则:短路计算。
b. 短路计算。
b-1. 在计算 a and b
时,如果 a 是 False,则根据与运算法则,整个结果必定为 False,因此返回 a;如果 a 是 True,则整个计算结果必定取决与 b,因此返回 b。
b-2. 在计算 a or b
时,如果 a 是 True,则根据或运算法则,整个计算结果必定为 True,因此返回 a;如果 a 是 False,则整个计算结果必定取决于 b,因此返回 b。
9. List用法
L=[‘Joye’,20,true] #List为一种有序列表
Ps.由于Python为动态语言,所以list中的元素并不一定都是同一种数据类型;
a. 正序访问元素
print L[2]
b. 倒序访问元素
print L[-1] # -1代表最后一个元素
c. 添加新元素
append() : 把新元素添加到List末尾
extend([list]):添加一个列表到列表末尾
insert(pos,ele):添加一个元素到列表指定位置之前
d. 删除元素
L.pop(2) #删除第二个元素
e. 替换元素
L[-1]='Paul'
10. tuple(元组)用法:
tuple是除List外的另外一种有序列表;
a. 与List不同处:tuple用()替代了[],tuple中的值一旦确定将会无法改变,因为它不可以新增/删除/更新元素,但对于值的获取都是一样的,如 L[0],L[-1]等;
b. tuple的单元素形式为(0),而()又可以被识别为运算时的优化级,所以(0)形式在此时是有歧义的,所以在使用单元素时我们要多加一个逗号在单元素的后面,如(0,);
c. tuple之可变
t = ('a', 'b', ['A', 'B'])
L = t[2]
L[0] = 'X'
L[1] = 'Y'
Ps.这种元素的可变指的是list元素['A', 'B']发生的改变,而所谓的tuple元素不变指的是它的引用不会发生变化.此时可以将t修改为t = ('a', 'b', ('A', 'B'))以确保t的值不会发生改变;
11. Python代码缩进规则:
a. 具有相同缩进的代码被视为代码块;
b. Python缩进写法:4个空格,不能使用Tab,更不要混合Tab和空格,以防由此而引发的语法错误;
c. 在Python交互环境下开发代码,退出缩进时需要多敲一行回车
12. if语句后接表达式,然后用:表示代码块开始,elif则表示else if;
if Condition A:
print 'A'
elif Condition B:
print 'B'
elif Condition C:
print 'C'
else:
print 'baby'
13. for语句
L = ['Adam', 'Lisa', 'Bart'] for name in L: print name
14. while循环
N = 10 x = 0 while x < N: print x x = x + 1
break 退出循环 continue 跳过后续的循环,继续下一次的循环