1、源代码
hello.py:
1 #!/usr/bin/python2 PRint "hello world"
2、字节代码:python源文件经编译后生成的扩展名为“pyc”的文件
编译方法(compile.py):
import py_compilepy_compile.compile('hello.py')
然后执行:
$ python compile.py
会生成二进制的 hello.pyc 文件
3、优化代码:经过优化的源文件,扩展名为 pyo
在命令行下执行下面的命令优化:
$ python -O -m py_compile hello.py
1、整数除法 //
即只取结果中的整数部分:
>>> 3.0 // 21.0>>> 3 // 21
2、求幂运算 **
>>>3**327>>>3**29
3、逻辑与、逻辑或、逻辑非
>>> 1>2 and 3>2False>>> 2>1 and 3>2True>>>1>2 or 3>2True>>>1>2 or 1>3False>>> not 1>2True>>> not 2>1False
4、运算符优先级:
1、数字:分整型、长整型、浮点、复数
其中复数(用j表示):
>>> a=3.14j>>> type(a)<type 'complex'>>>>
2、字符串:单双引号一样
>>> str1="a">>> str2='a'>>> id(str1)140710100204544>>> id(str2)140710100204544>>> mail="""tom:... i am jack... goodbye... """>>> print mailtom: i am jack goodbye>>>
切片:[start:stop:step]
即:[开始索引:结束索引:步长值]
开始索引:同其它语言一样,从0开始。序列从左向右方向中,第一个值的索引为0,最后一个为-1
结束索引:切片操作符将取到该索引为止,不包含该索引的值。
步长值:默认是一个接着一个切取,如果为2,则表示进行隔一取一操作。步长值为正时表示从左向右取,如果为负,则表示从右向左取。步长值不能为0
注明:如果是string[ : ]的模式,那么就是[start:stop]
示例:
>>>exam="abcdefghi" >>>print exam[:-1]abcdefgh >>>print exam[2:]cdefghi >>>print exam[:7:2]aceg >>>print exam[:3:-1]ihgfe
注意:最后一行,因为第三个参数是-1,所以是倒序输出的,但是此时的索引并没有倒序排列
3、列表:处理一组有序项目的数据结构,是可变类型数据,用[]表示,包括了多个以逗号隔开的项目。
>>> l=['jim',25,'male']>>> l['jim', 25, 'male']>>> type(l)<type 'list'>>>> l[0]'jim'>>> l[0]='tom'>>> l[0]'tom'>>> l['tom', 25, 'male']
空列表:
>>>l=[]
只有一个值:
>>>l=['abc']
列表常用方法:
取值:list[index] 或者 list[start:end:offset]
追加:list.append(x);
追加列表:list.extend([x,y]);结果为[...,x,y],注意跟append的区别
删除:del(list[index]) 或者 list.remove(list[index])
修改:list[index]=x
查找:var in list
>>>l=['a',1]>>>'a' in lTrue>>>'b' in lFalse
4、元组:跟列表类似,只是跟字符串一样是不可变的,即你不能修改元组(只能在内存中重新创建一个)。
>>>userinfo=("tom", 30, "man")>>>userinfo[0]"tom"
空元组:
>>>t=()
单一元素的元组:
>>>t=(1,)
注意,不能省略逗号
用变量接收元组:
>>> t('jim', 25, 'man')>>> name,age,gender=t>>> name'jim'>>> age25>>> gender'man'>>>a,b,c=(1,2,3)>>>a1>>>b2>>>c3
5、字典:python中唯一的映射类型(哈希表)
创建方式:
(1){}
>>>dic={0:0,'a':'abc'}>>>dic[0]0>>>dic['a']'abc'
(2)使用工厂方法dict()
>>> fdict=dict([('x',1),('y',2)])>>> fdict{'y': 2, 'x': 1}
(3)fromkeys():字典中的元素具有相同的值,默认为None
>>> d={}.fromkeys(('x','y',0), -1)>>> d{'y': -1, 'x': -1, 0: -1}
字典常用方法:
(1)、使用键值访问更新
(2)、del dict1['a']删除字典中键值为a的元素
(3)、dict1.pop('a') 删除并返回键为'a'的元素
(4)、dict1.clear()删除字典所有元素
(5)、del dict1 删除整个字典
(6)、str(dict1) 转换为字符串
(7)、get(key[, msg]) 如果key不存在返回msg(没有为空)值
(8)、dict1.items() 返回键值对元组的列表
>>> d{'a': 1, 'b': 2}>>> d.items()[('a', 1), ('b', 2)]
(9)、dict1.keys() 返回字典中键的列表
>>> d{'a': 1, 'b': 2}>>> d.keys()['a', 'b']
(10)、dict1.setdefault(key,default=None) 若key存在则返回其value,否则dict1[key]=default
(11)、dict1.update(dict2) 将dict2中的键值对添加到字典dict1中,如果有重复就覆盖,否则添加。
(12)、len(dict1) 返回字典中有多少项
>>> d{'a': 1, 'b': 2}>>> len(d)2
6、序列:列表、字符串、元组都是序列
切片:序列后跟一个方括号,方括号中有一对用冒号隔开的可选数字,数字是可选的,冒号是必须的。如:
>>>exam="abcdefghi" >>>print exam[:-1]abcdefgh >>>print exam[2:]cdefghi >>>print exam[:7:2]aceg >>>print exam[:3:-1]ihgfe
索引:序列后跟一个方括号,方括号中有一个数字(可以是负数)。如:
>>>exam="abcdefghi" >>>print exam[0]a
1、len:序列长度
>>>exam="abc" >>>len(exam)3
2、+:连接两个序列
>>>str1="abc" >>>str2="d">>>str1+str2abcd
3、*:重复序列元素
>>>str1="abc " >>>str1*3abc abc abc
4、in:判断元素是否在序列中
>>>str1="abc " >>>'c' in str1True>>>'x' in str1False
5、max:返回最大值
>>>s='12345'>>>max(s)'5'
6、min:返回最小值
>>>s='12345'>>>min(s)'1'
7、cmp(tuple1, tuple2):比较两个序列值是否相同
>>>str1='abc'>>>str2='123'>>>cmp(str1,str2)1>>>str1='1'>>>cmp(str1,str2)-1>>>str1='123'>>>cmp(str1,str2)0
六、
新闻热点
疑难解答