码迷,mamicode.com
首页 > 其他好文 > 详细

day 6 返回值,参数

时间:2017-11-20 14:27:19      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:height   pre   day   运行   image   ##   alt   nbsp   ...   

1.函数返回值

In [3]: def divid(a,b):
   ...:     shang = a//b
   ...:     yushu = a%b
   ...:     return shang,yushu
   ...: 

In [4]: sh, yu = divid(5,2)        #元组方式返回 (2,1)

In [5]: sh
Out[5]: 2

In [6]: yu
Out[6]: 1

 

2.缺省参数和命名参数

缺省参数,使用默认的值,

             只能放到最后

 命名参数,必须使用形参的变量名a,b,c

      技术分享图片

      技术分享图片

 

3.不定长参数 args  ,元组

####  两天的营业额
 def add(a,b):
     result = a + b
     print(result)
 
 add(11,22)

 

我想把每天的营业额加起来,但是有时开业5天,有时候开业7天

 

 变量就是args 只不过加了标记*

元组:切记一个元素的写法(33,)

 

def add(a,b,*args):
    print("------")
    print(a)
    print(b)
    print(args)
    #result = a + b
    #print(result)


add(11,22,55,66,77,88)    #(55,66,77,88)
add(11,22,33)             #(33,)
add(11,22)          #()
add(11)   #报错 形参b没有值

     技术分享图片

 

计算多个数的值

  1)版本1:我的

def add(a,b,*args):

    result = a + b
    print(a,b,args)

    for temp in args:
        result = temp + result

    print(result)

add(1,12,23,34,45,55,66,77,88,99)

     技术分享图片

 

   2)版本2:老师的

 def add(a,b,*args):
     print("-"*30)
     print(a)
     print(a)
     print(*args)
 
     result = a+b
     for temp in args:
         result += temp
 
     print("result=%d"%result)
 
 add(11,22)
 add(11,22,33)
 add(11,22,33,44,55,66)

 

      技术分享图片

 

 4.不定长参数,kwargs, 命名参数的,字典  

#最复杂的带参数的
def test(a,b,c=33,*args,**kwargs):
     print(a)                        #必须传递的参数a,b
     print(b)
     print(c)                        #可选的 c
     print(args)                   #*多余的没有名字的 args
     print(kwargs)                 #**多余的有名字的 kwargs
 
 test(11,22,33,44,55,66,task=99,done=98)
 

 

      技术分享图片

 

 5.拆包 *   **

把元组拆成一个个,当成参数传递

把字典拆成一对对键值对,当成参数传递

###### 拆包之前
 def test(a,b,c=33,*args,**kwargs):
     print(a)
     print(b)
     print(c)
     print(args)
     print(kwargs)
 
 #test(11,22,33,44,55,66,task=99,done=98)
 
 A = (44,55,66)
 B = {"name":"alex","age":18}
 
 test(11,22,33,A,B)

####  运行结果
11
22
33
((44, 55, 66), {age: 18, name: alex})            #A,B是传递的参数
{}                                                   #没有传入命名参数    
    

 

 

####   拆包之后
 def test(a,b,c=33,*args,**kwargs):
     print(a)
     print(b)
     print(c)
     print(args)
     print(kwargs)
 
 #test(11,22,33,44,55,66,task=99,done=98)
 
 A = (44,55,66)
 B = {"name":"alex","age":18}
 
 test(11,22,33,*A,**B)


####  运行结果
11
22
33
(44, 55, 66)
{age: 18, name: alex}

 

day 6 返回值,参数

标签:height   pre   day   运行   image   ##   alt   nbsp   ...   

原文地址:http://www.cnblogs.com/venicid/p/7865840.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!