python 抽象


抽象

创建函数
>>> def hello(name):
 return 'hello,'+name+'!'

>>> hello('qiaochao')
'hello,qiaochao!'

函数注释
1)以#开头
2)直接写上字符串

函数定义可以嵌套
>>> def foo():
 def bar():
  print 'hello aaa '
 bar()
 
>>> foo()
hello aaa

函数递归调用:
>>> def jiecheng(n):
 if n == 1 :
  return 1
 else:
  return n*jiecheng(n-1)
 
>>> jiecheng(10)
3628800

二元查找:
def search(sequence,number,lower,upper):
 if lower == upper :
  assert number == sequence[upper]
  return upper
 else :
  middle = (lower + upper) // 2
  if(number > sequence[middle]):
   return search(sequence,number,middle+1,upper)
  else:
   return search(sequence,number,lower,middle)

print search([1,2,3,4,5,6,7,8,9,10],7,0,9)
6

----------------------------------------------------------------


>>> def hello(greeting,name):
 print '%s , %s!' % (greeting,name)
  
>>> hello(greeting='hello',name='qiaoc')
hello , qiaoc!
注意:这里可以指定参数传值,这样就不会担心值对应的参数对不对 --- 关键字参数


>>> def hello(greeting='hi ',name='qiaochao'):
 print '%s , %s!' % (greeting,name)

>>> hello()
hi  , qiaochao!
注意:定义函数可以让参数有默认值

------------------------------------------------------------------

收集参数

>>> def print_params(title,*params):
 print title
 print params

>>> print_params('Params:',1,2,2)
Params:
(1, 2, 2)
>>> print_params('ass :')
ass :
()
注意:*的意思是收集参数,如果不提供任何供收集的元素,params就是个空元组

>>> def print_params_1(**params):   -----** 字典参数
 print params

>>> print_params_1(x=1,y=2,c=3)
{'y': 2, 'x': 1, 'c': 3}

>>> def print_params_2(x,y,z=3,*params,**keybar):
 print x,y,z
 print params
 print keybar

>>> print_params_2(1,2,3,5,6,7,foo=1,bar=2)
1 2 3
(5, 6, 7)
{'foo': 1, 'bar': 2}
>>> print_params_2(1,2)
1 2 3
()
{}

反转过程
>>> def add(x,y):
 return x+y

>>> params=(1,2)
>>> add(*params)
3

** --- 也适用于字典参数

-----------------------------------------------------------------------

全局变量   ----  global 定义
>>> x=1
>>> def change_global():
 global x
 x=x+1

>>> x
1
>>> change_global()
>>> x
2

---------------------------------------------------------------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值