0.文档字符串
代码
#-*- coding:UTF-8 -*-
#文档字符串
def fact(n):
"this is a function computes a factorial" #文档字符串
if (n <= 1): return 1
else: return n*fact(n -1)
print fact.__doc__
结果
>>>
this is a function computes a factorial
>>>
解释:
1.使用该注释:#-*- coding:UTF-8 -*-,该脚本支持utf-8字符。
2.定义函数的时候,缩进量一样为一个制表符,该函数的开头是一个文档字符串
3.调用对象的__doc__属性可以访问该函数的文档字符串
1.引用和复制
1.0复制
>>> a = [1,2,3,4]
>>> b = a #b是对a的引用,修改b中的元素即为修改a中的元素
>>> b is a
True
>>> a[2] = 99
>>> a
[1, 2, 99, 4]
>>>
1.1浅复制
>>> a = [1,2,[3,4]]
>>> b = list(a) #创建a的一个浅复制
>>> b is a
False
>>> b.append(100) #在b末尾加一个元素
>>> a
[1, 2, [3, 4]] #a不改变(添加)
>>> b
[1, 2, [3, 4], 100] #b改变
>>> b[2][0] = -100
>>> b
[1, 2, [-100, 4], 100] #b改变
>>> a
[1, 2, [-100, 4]] #a也改变(修改)
>>>
1.2深复制
>>> import copy
>>> a = [1,2,3]
>>> b = copy.deepcopy(a) #深复制a
>>> b[1] = 10
>>> b #b发生改变
[1, 10, 3]
>>> a #a不发生改变
[1, 2, 3]
>>>
另一种复制的方式
a = [1, 2, 3, 4]
b = a[ : ]
注:在idle命令行中直接书写代码,不保存程序。
可以直接打印某些内容。
2.列表,元组,集合,字典
2.0列表是任意对象的序列,比如
>>> names =["granton","tim","mark"] #定义一个元组,元素为字符串
>>> names[1] 从0开始计数
'tim'
>>> names[0] = "zhuang" #修改第0个元素
>>> names
['zhuang', 'tim', 'mark']
>>>names.append("samin") #在元组的末尾追加一个元素
>>> names
['zhuang', 'tim', 'mark', 'samin']
>>>names.insert(2,"douya") #再第2个位置上添加一个元素
>>> names
['zhuang', 'tim', 'douya', 'mark', 'samin']
>>> a = names[3:] #切片操作,从第3个元素到末尾
>>> a
['mark', 'samin']
>>> b = names[:3] #切片操作,从开头到第3个(不包括第3个)
>>> b
['zhuang', 'tim', 'douya']
>>> c = names[1:3] #切片操作,从第1个到3个(不包括第3个)
>>> c
['tim', 'douya']
>>> d = a+b #连接两个列表
>>> d
['mark', 'samin', 'zhuang', 'tim', 'douya']
>>>
2.1元组
在” ()”中放一组数据即可创建一个元组,or干脆不使用”()”,
a = () #0-元组
b = (item,) #1-元组,注意随后的逗号。
元组创建后不能修改其中的内容,其余操作(索引,切片,连接)与列表相同。
区别:列表创建后为了修改,系统会分配较大的内存,元组则被分配到较小的内存。
若要创建大量的小列表并且不修改,元组更加适合。
2.2集合
集合用于包含一组无序的(所以不能通过数字索引)不重复的对象,创建集合使用set函数
>>> a = set([1,2,3,4])
>>> b = set("hello")
>>> a
set([1, 2, 3, 4])
>>> b
set(['h', 'e', 'l', 'o']) #因为集合中的元素是不重复的,所以这里少了一个”l”
>>>
集合的并,交,差,对称差
>>> t = set([1,2,3,4])
>>> s = set([3,4,5])
>>> t | s #并集
set([1, 2, 3, 4, 5])
>>> t & s #交集
set([3, 4])
>>> t – s #差集,t有,s没有
set([1, 2])
>>> t ^ s #对称差,t和s都有,t和s的交集没有
set([1, 2, 5])
>>>
通过add和update方法来添加元素,通过remove方法删除
>>> t = set([1,2,3,4])
>>> t.add(10)
>>> t
set([1, 2, 3, 4, 10])
>>>
>>> t = set([1,2,3,4,10])
>>> t
set([1, 2, 3, 4, 10])
>>> t.update([7,8,9])
>>> t
set([1, 2, 3, 4, 7, 8, 9, 10])
>>> t.remove(1)
>>> t
set([2, 3, 4, 7, 8, 9, 10])
>>>
2.3字典
字典是一个关联数组或散列表,包含通过关键字来索引的对象,在{}中放入key andvalue。
>>> stock ={"name":"granton","age":20,"sex":"boy"} #建立一个字典,key为字符串,value为Python对象。
>>> stock["name"] #通过key名来索引
'granton'
>>> stock["age"] = 21 #通过key名赋值
>>> stock["age"]
21
>>> stock["like"] ="python" #添加一个对象
>>> stock
{'age': 21, 'like': 'python', 'name':'granton', 'sex': 'boy'}
>>> stock = {} #将字典置为空
>>> stock
{}
字典的操作
#-*- coding:UTF-8 -*-
stock = {"name":"granton","age":20,"sex":"boy"}
if "age" in stock: #若字典中存在该项,则打印
print stock["age"]
else:
pass #pass表示不执行任何操作,直接跳过
age = stock.get("age",0) #get方法,若字典中不存在该项,则添加,若存在,不执行操作。
like =stock.get("like","python")
slist = list(stock)
print age, like
print slist
del stock["name"]
print "after delete this dict is"
print stock
结果:
20
20 python
['age', 'name', 'sex']
after delete this dict is
{'age': 20, 'sex': 'boy'}
>>>