函数

1.使用def test(x): (使用def(关键字)定义函数,test是函数对象,x为参数)

               ‘注释’

                2*x

              return x  

#函数可以传参数也可以不传参数

def test(x):#可以传参数也可以不传参数
    '''
    2*x+1
    :param x: 整型数字
    :return: 返回计算结果
    '''
    y =2*x+1
    return y
print(test)
a =test(3)
print(a)


def test():#可以传参数也可以不传参数
    '''
    2*x+1
    :param x: 整型数字
    :return: 返回计算结果
    '''
    x = 3
    y =2*x+1
    return y
a = test()
print(a)

2、函数的返回值的多种形态

def test01():
    msg = "test01"
    # print(msg)

def test02():
    msg = "test02"
    # print(msg)
    return msg

def test03():
    msg = "test03"
    # print(msg)
    return 1,2,4,'a',['alex'],{'name':'alex'},None

def test04():
    msg = "test04"
    # print(msg)
    return {'name':'alex'}
t1 = test01() #返回值数 =0 :返回None
t2 = test02()#返回值数 =1  :返回object
t3 = test03()#返回值数>1 :返回tuple(元组)
t4 = test04()#返回值数 =1  :返回object
print(t1)
print(t2)
print(t3)
print(t4)

 3.函数的参数分为形参和实参,如:def test(x): #形参

#形参的特点,不占用内存空间,只有在调用时才会分配地址,调用完成之后就会被释放掉

                                                          ‘注释:描述代码功能’  

                                                          print(x)#代码块

                                                         test(1)#实参

4.位置参数

#位置参数 :实参与形参位置一一对应,缺一不可,多一个也不行
def test(x,y,z):#形参
    print(x)
    print(y)
    print(z)
res = test(1,3,4)#实参

5.关键字参数

#关键字参数:无需一一对应,缺一不行多一不行
def test(x,y,z):#形参
    print(x)
    print(y)
    print(z)
res = test(x=2,z=5,y=7)#实参

6.位置参数必须在关键字参数的左边

#位置参数必须在关键字参数的左边
def test(x,y,z):#形参
    print(x)
    print(y)
    print(z)
# test(2,y=5,7)#报错
# test(2,5,y=7)#报错
test(2,5,z=7)#实参

7.形参的参数默认值

 

def handle(x,type = 'mysql'):#其中mysql是type的默认值,type是默认参数
    print(x)
    print(type)
#handle('hello')#只给x赋值,此时type 取默认值mysql
handle('hello',type = 'sqlite')#也可以给默认参数赋值,此时打印type的值就是sqlite
#handle('hello','sqlite') #此处type的值使用的是位置参数传值

8.参数组:**字典 *列表

*列表的例子

#参数组:**字典 *列表
def test(x,*args):
    print(x)
    print(args)
    # print(args[0][1])
#test(1,2,3,4,5,6) #args 返回的结果是个元组
#test(1,{'name':'alex'})
# test(1,[2,3,4,5,6])
test(1,*[2,3,4,5,6])

**字典的例子

#**字典
def test(x,**kwargs):
    print(x)
    print(kwargs)
test(1,y = 2,z = 3)
# test(1,y = 2,z = 3,z = 4) #会报错,一个参数不能传两个值

9.同时使用字典和列表参数

def test(x,*args,**kwargs):
    print(x)
    print(args,args[-1])
    print(kwargs,kwargs['z'])
# test(1, 1, 22, 3, 4,x= 1, y=2, z=3)#报错,传的x值与形参x重复
test(1,1,22,3,4,y = 2,z = 3)

def test(x,*args,**kwargs):#同时传列表和字典的形参
    print(x)
    print(args,args[-1])
    print(kwargs,kwargs['y'])
test(1,*[1,2,3],**{'y':1})

 

原文地址:https://www.cnblogs.com/renzhiqiang/p/10861819.html