201702015--PYTHON--yield+*args+字符串的处理

定义函数
 

>>> def add(n1,n2):
...   print n1+n2
...
>>> type(add)
<type 'function'>
>>> add(11,33)
44
>>> bb = add(11,22)
33
>>> print bb
None
>>> bb
>>> def add(n1,n2):
...   return n1+n2
...
>>> bb = add(11,22)
>>> print bb
33
>>> bb
33
>>> c = add
>>> c(11,22)
33
>>> id(c)
140381409654976
>>> id(add)
140381409654976
>>>

 

函数递归了

>>> def f():
...   return add
... 
>>> 
>>> cc = f()
>>> type(cc)
<type 'function'>
>>> cc(23,23)
46
>>> def f():
...   def add(n1,n2):
...     return add
...   return add
... 
>>> cc = f()
>>> type(cc)
<type 'function'>
>>> cc(11,22)
<function add at 0x7fad180e3230>
>>> 

   全局变量 global,不建议使用

113431_9rK5_2918364.png



>>> def f01(n1,n2):
...   return n2,n1
... 
>>> f01(11,22)
(22, 11)
>>> ()
()
>>> def f02(n1,n2):
...   return n1*10 ,n2*100
... 
>>> f02(11,22)
(110, 2200)
>>> def f03(n1,n2):    //在函数里面调用函数
...   return f02(n2,n1)
... 
>>> f03(11,44)
(440, 1100)
>>> 

 


>>> def add(n1,n2):
...   return n1+n2
... 
>>> add(11,22)
33
>>> add(11,22,33)  //函数只定义了两个参数,传入三个参数就会报错
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: add() takes exactly 2 arguments (3 given)
>>> 

 


>>> def add(l):
...   s=0
...   for i in l:
...     s += i
...   return s
... 
>>> add([11,22,33,44,55])
165
>>> sum([11,22,33,44,55])
165
>>> def add(l):
...   return sum(l)
... 
>>> add([11,22,33,44,55])  //传参进去,传一个列表进去
165
>>> add(11,22,33,44,55)   //这里将会把他们当作五个参数
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: add() takes exactly 1 argument (5 given)
>>> 

传不定长参数,这里的args可以为其他任意字母

114427_XNIf_2918364.png

传参

114857_VooI_2918364.png

 

字典的传参 **kwargs 定义字典的参数

115228_a4Nq_2918364.png

return 只是返回值,需要告诉他怎么处理

115523_sdCq_2918364.png

**定义关键字参数,必须写在后面

 

*args ,**kwargs  //args 表示非关键字参数的元组,kwargs表示关键字参数的字典,非关键字参数必须在后面

定义默认参数

115913_pZXh_2918364.png

 

is 用来比较两个变量是否指向同一个内存地址,可以用==代替

set (集合):无序不重复的元素集

a = set(list) //将列表转化为集合

 

匿名函数 lamda

@装饰器 改变函数的行为,装饰器接受函数作为参数,返回一个新的函数

 

142707_RFoI_2918364.png

 

143300_7NlY_2918364.png

yield 相当于一个发射器,每次只发送一发子弹,用一个生成一个,相当于生成器

143725_TfdN_2918364.png

 

反向打印字符串,

144210_nyDN_2918364.png

jion方法:

144312_u76u_2918364.png

yield方法

144645_LL3w_2918364.png

145134_GUQI_2918364.png

145213_zeFu_2918364.png

145249_i8Y6_2918364.png

 

eval

145514_zZ2Q_2918364.png

145543_nYco_2918364.png

exec 将字符串参数,作为python脚本运行

 

filter(function,sequence)//将序列传给函数处理

150454_YXNm_2918364.png

150608_ZL8W_2918364.png

150637_dHmx_2918364.png

reduce

151441_ZVdr_2918364.png

reduce指定初始值

151519_tFXa_2918364.png

zip sequence循环

151639_6MZD_2918364.png

151723_wvC3_2918364.png

151806_DmAZ_2918364.png

 

自定义排序

152701_BVYM_2918364.png

152716_4Z33_2918364.png

enumerate :枚举

153132_XNsZ_2918364.png

 

转载于:https://my.oschina.net/liubaizi/blog/839295

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值