PT--传参 99乘法表

 99乘法表

 

  1 # 2.写函数,接收n个数字,求这些参数数字的和。(动态传参)
  2 def func(*args):
  3     sum = 0
  4     for i in args:
  5         sum += i
  6     return sum
  7 li=[1,3,4,5,6,34,78,65]
  8 print(func(*li))
  9 
 10 
 11 #方法二
 12 def fun(*args):
 13     return sum(args)  #内置函数
 14 #sum()中跟的是可迭代对象
 15 
 16 
 17 # 5,写函数,传入函数中多个实参(均为可迭代对象如字符串,列表,元祖,集合等),
 18 # 将每个实参的每个元素依次添加到函数的动态参数args里面.
 19 # 例如 传入函数两个参数[1,2,3] (22,33)最终args为(1,2,3,22,33)
 20 
 21 def  fun1(*args):
 22     print(args)
 23 lis=[1,2,3]
 24 tu=(22,33)
 25 fun(*lis,*tu)
 26 
 27 
 28 
 29 '''
 30 6,写函数,传入函数中多个实参(实参均为字典),将每个实参的键值对
 31 依次添加到函数的动态参数kwargs里面.
 32 例如 传入函数两个参数{‘name’:’alex’} {‘age’:1000}
 33 最终kwargs为{‘name’:’alex’ ,‘age’:1000}
 34 '''
 35 def fun(**kwargs):
 36     print(kwargs)
 37 dic1={'name':'alex'}
 38 dic2={'age':1000}
 39 fun(**dic1,**dic2)
 40 
 41 
 42 '''
 43 9,写函数,接收一个参数(此参数类型必须是可迭代对象),
 44 将可迭代对象的每个元素以’_’相连接,形成新的字符串,并返回.
 45 例如:传入的可迭代对象为[1,'老男孩','武sir']返回的结果为’1_老男孩_武sir’
 46 '''
 47 def fun(lis):
 48     for i in range(len(lis)):
 49         if type(lis[i])==int:  #判断类型的时候用type
 50             lis[i]=str(lis[i])
 51     s='_'.join(lis)
 52     return s
 53 li=[1,'老男孩','wusir']
 54 print(fun(li))
 55 
 56 
 57 '''
 58 10,写函数,传入n个数,返回字典{‘max’:最大值,’min’:最小值}
 59 例如:min_max(2,5,7,8,4) 返回:{‘max’:8,’min’:2}
 60 (此题用到max(),min()内置函数)                 
 61 '''
 62 def fun(*args):
 63     ma=max(args)
 64     mi=min(args)
 65     dic={}
 66     dic['max']=ma
 67     dic['min']=mi
 68     return dic
 69 tu=(2,5,7,8,4)
 70 print(fun(*tu))
 71 
 72 
 73 '''
 74 11,写函数,传入一个参数n,返回n的阶乘
 75 例如:cal(7)  计算7*6*5*4*3*2*1
 76 '''
 77 def cal(n):
 78     j=1
 79     for i in range(n,0,-1):
 80         j *= i
 81     return j
 82 print(cal(7))
 83 
 84 
 85 '''
 86 12.写函数,返回一个扑克牌列表,里面有52项,每一项是一个元组
 87 例如:[(‘红心’,2),(‘草花’,2), …(‘黑桃’,‘A’)]
 88 '''
 89 def fn(lis,li):
 90     ls=[]
 91     def func(*args):   #用于返回元组
 92         return args
 93     for el in lis:
 94         for i in li:  #两次循环遍历出元组的信息进行组合
 95             m=func(el,i)
 96             ls.append(m)   #获取的元组添加到列表
 97     return ls
 98 lis1 = ['红心', '草花', '黑桃', '方片']
 99 lis2= ['2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K', 'A']
100 print(fn(lis1,lis2))
101 
102 
103 '''
104 13.有如下函数:
105 def wrapper():
106     def inner():
107         print(666)
108 wrapper()
109 你可以任意添加代码,用两种或以上的方法,执行inner函数.
110 '''
111 
112 #方法一:
113 def wrapper():
114     def inner():
115         print(666)
116     inner()
117 wrapper()
118 #方法二:
119 def wrapper():
120     def inner():
121         print(666)
122         return inner  #返回函数名
123 ret=wrapper()
124 print(ret)
125 
126 
127 # 14.
128 
129 def extendList(val,list=[]):  #默认值 是可变的时候,多次调用,它的内存地址是一样
130     list.append(val)
131     return list
132 list1 = extendList(10)
133 list2 = extendList(123,[])
134 list3 = extendList('a')
135 
136 print('list1=%s'%list1)
137 print('list2=%s'%list2)
138 print('list3=%s'%list3)
139 #  结果: [10,'a']     [123]      [10,'a']
140 
141 
142 
143 # 15. 代码完成99乘法表.(升级题)
144 
145 def func(li):
146     for i in li:
147         for j in range(1,i+1):
148             ji=i*j
149             print('%s * %s = %s'%(i,j,ji) ,end='')
150         print('\t')
151 li=[1,2,3,4,5,6,7,8,9]
152 func(li)

 

posted @ 2018-08-09 17:37  葡萄想柠檬  Views(238)  Comments(0Edit  收藏  举报
目录代码