老王Python-进阶篇4-函数第五节

'''
1.定义一个func(name),该函数效果如下。
assert func("lilei") = "Lilei"
assert func("hanmeimei") = "Hanmeimei"
assert func("Hanmeimei") = "Hanmeimei"
'''

 1 def func(name):
 2     a=name.lower()
 3     return a.capitalize()
 4 
 5 
 6 print func("lilei")
 7 print func("hanmeimei")
 8 print func("Hanmeimei")
 9 
10 
11 assert func("lilei")=="Lilei"
12 assert func("hanmeimei") =="Hanmeimei"
13 assert func("Hanmeimei") == "Hanmeimei"

"""
2.定义一个func(name,callback=None),效果如下。
assert func("lilei") == "Lilei"
assert func("LILEI",callback=string.lower) == "lilei"
assert func("lilei",callback=string.upper) == "LILEI"

"""

 2 def func(name,callback=None):
 3      if callback==None:
 4           return name.capitalize()
 5      else:
 6         return callback(name)
 7 
 8  print func("lilei")
 9  print func("LILEI",callback=string.lower)
10  print func("lilei",callback=string.upper)
11 
12  
13  assert func("lilei") == "Lilei"
14  assert func("LILEI",callback=string.lower) == "lilei"
15  assert func("lilei",callback=string.upper) == "LILEI"

 

"""
3.定义一个func(*kargs),效果如下。

l = func(1,2,3,4,5)
for i in l:
print i,
#输出 1 2 3 4 5

l = func(5,3,4,5,6)
for i in l:
print i
#输出 5 3 4 5 6

"""

1 def getitem(*kargs):
2     return kargs

4.定义一个func(*kargs),该函数效果如下。

assert func(222,1111,'xixi','hahahah') == "xixi"
assert func(7,'name','dasere') == 'name'
assert func(1,2,3,4) == None


"""

 1 def shortstr(*kargs):
 2    
 3     lis = filter(lambda x:isinstance(x,str),kargs)
 4  
 5     len_lis = [len(x) for x in lis]
 6 
 7     if len_lis:
 8             min_index = min(len_lis)
 9             return lis[len_lis.index(min_index)]
10     return None

"""
5.定义一个func(name=None,**kargs),该函数效果如下。

assert func(“lilei”) == "lilei"
assert func("lilei",years=4) == "lilei,years:4"
assert func("lilei",years=10,body_weight=20) == "lilei,years:4,body_weight:20"

"""

1 def func(name=None,**kargs):
2     lis = ["%s:%s"%(k,v) for k,v in kargs.items()]
3     lis.insert(0,name)
4     return ','.join(lis)

注:部分习题答案转载自“老王Python”

 

转载于:https://www.cnblogs.com/duyaya/p/8120426.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值