一.深浅拷贝
import copy #浅拷贝 n1={‘k1‘:‘wu‘,‘k2‘:123,‘k3‘:[‘carl‘,852]} n2=n1 n3=copy.copy(n1) print(id(n1)) print(id(n2)) print(id(n3)) print(id(n1[‘k3‘])) print(id(n3[‘k3‘])) #深拷贝 n4=copy.deepcopy(n1) print(id(n4)) print(id(n1[‘k3‘])) print(id(n4[‘k3‘]))
返回值: 10787656 10787656 11532848 20277688 20277688 11455064 20277688 20276328
二.函数的基本定义
1.默认参数:
def mail(): def func(name, age = 18): # 指定参数 print"%s:%s" %(name,age) # 使用默认参数func(‘alex‘) func(‘wupeiqi‘, 19)
2.动态参数序列:
def func(*args): print args # 执行方式一 func(11,33,4,4454,5) # 执行方式二 li = [11,2,2,3,3,4,54] func(*li)
3.动态参数字典:
def func(**kwargs): print args # 执行方式一 func(name=‘wupeiqi‘,age=18) # 执行方式二 li = {‘name‘:‘wupeiqi‘, age:18, ‘gender‘:‘male‘} func(**li)
4.序列和字典:
def show(*arg,**kwargs): print(arg,type(arg)) print(kwargs,type(kwargs)) show(64,56,99,w=76,p=33)
5.使用动态参数对字符串格式化:
s1 ="{0} is {1}" l=[‘alex‘,‘sb‘] result=s1.format(*l) print(result) s1 = "{name} is {a}" result=s1.format(name=‘helen‘,a=19) print(result) s1 = "{name} is {a}" d={"name":"helen",‘a‘:19} #result=s1.format(name=‘helen‘,a=19) result=s1.format(**d) print(result) 6.lambda表达
6.lambda表达式:
lambda表达式等于简单函数表达方式 def func(a): b=a+1 return b 等于 func=lambda a:a+1 ret=func(5) print(ret)
三.内置函数
abs()绝对值
all()如果传入的对象元素为真(不为空)则为真
any()一真则真
ascii()当遇到非ASCII码时,就会输出\x,\u或\U等字符来表示
example: print(ascii(10), ascii(9000000), ascii(‘b\31‘), ascii(‘0x\1000‘)) 返回结果: 10 9000000 ‘b\x19‘ ‘[email protected]‘
bin()二进制转化
bytearray()字符串转换数组
callable()判断对象是否可被调用
chr()数字转为ascii
ord()ascii转化为数字,写验证码用
compile()字符串转换为Python代码
#!usr/bin/env python #coding:utf-8 namespace = {‘name‘:‘wupeiqi‘,‘data‘:[18,73,84]} code = ‘‘‘def hellocute():return "name %s ,age %d" %(name,data[0],) ‘‘‘ func = compile(code, ‘<string>‘, "exec") exec func in namespace result = namespace[‘hellocute‘]() print result
complex()负数
delattr/getattr/setattr/hasattr()反射用
dictionary()创建字典
divmod()
中文说明:
divmod(a,b)方法返回的是a//b(除法取整)以及a对b的余数
返回结果类型为tuple
参数:
a,b可以为数字(包括复数)
版本:
在python2.3版本之前不允许处理复数,这个大家要注意一下
英文说明:
Take two (non complex) numbers as arguments and return a pair of numbers consisting of their quotient and remainder when using long division. With mixed operand types, the rules for binary arithmetic operators apply. For plain and long integers, the result is the same as (a // b, a % b). For floating point numbers the result is (q, a % b), where q is usually math.floor(a / b) but may be 1 less than that. In any case q * b + a % b is very close to a, if a % b is non-zero it has the same sign as b, and 0 <= abs(a % b) < abs(b).
Changed in version 2.3: Using divmod() with complex numbers is deprecated.
enumerate()用于遍历序列中的元素以及它们的下标
map()第一个参数接收一个函数名,第二个参数接收一个可迭代对象
filter()过滤
float()
format()
frozenset()冻结集合
globals()全局变量
hash()字典键哈希
hex()计算十六进制
locals()本地变量
memoryview()
oct()八进制转换
pow()幂运算
range()迭代器
round()四舍五入
slice()切片
sorted()排序
str()
sum()求和
super()执行父类
dir()返回key
vars()返回键值对
zip()列表压缩