#!/usr/bin/env python
#个人学习笔记,无其他用途
def add(x=9,y=10):
if x>y:
a=x+y
print "x+y"
return a
if x
a=y-x
print "y-x"
return a
if x==y:
a=x*y
print "x*y"
return a
print add(2,3)
print add(5,4)
print add(6,6)
将一个数组的值传递给函数
#!/usr/bin/env python
t=('name','tom')
def f(x,y):
print "%s: %s" % (x,y)
f(1,2)
f(*t)
将字典的值传递给函数
#!/usr/bin/env python
d={'age':30,'name':'tom'}
def f(name='lisa',age=23):
print "name---%s" % name
print "age----%s" % age
f(**d)
#如果是一个*,则传递的是字典中的key,两个**,是传递的是字典中的value
处理多余的参数传递
#!/usr/bin/env python
def f(x,*args):
print x
print args
f(1,2,3,4)
#结果显示为
1 (2, 3, 4) #2,3,4作为一个整体传递给args了
def m(x,*args,**kwords):
print x
print args
print kwords
m(1,2,3,4,5,args=2)
#运行结果
1 (2, 3, 4, 5) {'args': 2}
只用lambda构造函数
#!/usr/bin/env python
def f(x,y):
return x*y
print f(2,3)
#下面使用lambda来写此函数
g=lambda x,y:x*y
print g(2,3)
阶乘运算,用reduce函数
#!/usr/bin/env python
l=range(1,6)
def f(x,y):
return x*y
print reduce(f,l)
下面使用lambda来写此功能
f=lambda x,y:x*y print reduce(f,l)
亦可精简为
print reduce(lambda x,y:x*y,l)
上面的列子亦可一句话解决
print reduce(lambda x,y:x*y,range(1,6))
计算器模型
#!/usr/bin/env python
#coding:utf-8
from __future__ import division
def jia(x,y):
return x+y
def jian(x,y):
return x-y
def cheng(x,y):
return x*y
def chu(x,y):
return x/y
def operator(x,o,y):
if o =="+":
print jia(x,y)
elif o =="-":
print jian(x,y)
elif o =="*":
print cheng(x,y)
elif o =="-":
print chu(x,y)
else:
pass
operator(2,'+',4)
上面的列子等效于下面的
#!/usr/bin/env python
from __future__ import division
x=1
y=2
operator="/"
result={
"+":x+y,
"-":x-y,
"*":x*y,
"/":x/y
}
print result.get(operator)
取值的内置函数
>>> max(1,2,3,4,5,6) #取最大数
6
>>> min(1,2,3,4,5,6) #取最小数
1
>>> abs(-100) #取绝对值
100
>>> l=['a','b']
>>> len(l) #取长度
2
>>> divmod(5,2) #取商和余数 (2, 1)
>>> pow(2,3) #乘方 8
>>> pow(2,3,4) #乘方可以整除 0
>>> pow(2,3,3) #乘方不可以被整除,余数是2 2
>>> callable(l) #函数不可以被调用
False
>>> callable(f) #函数可以被调用 True
>>> isinstance(f,list)#判断类型
False
>>> range(1,6)
[1, 2, 3, 4, 5]
>>> xrange(6)
xrange(6)
阅读(952) | 评论(0) | 转发(0) |