Python的函数用法,包括函数参数、函数返回值和函数的嵌套

Day06新手小白学python

第六节  Python的函数用法,包括函数参数、函数返回值和函数的嵌套


目录

Day06新手小白学python

前言

一、函数基础

二、函数参数

三、函数返回值

四、函数嵌套调用

五、练习

总结


前言

本文介绍了 Python的函数用法,包括函数参数、函数返回值和函数的嵌套


一、函数基础

 函数:具有独立功能的代码块。有某一功能代码块出现多次,为提高效率把具有独立功能的代码块组织为一个小模块。在调用前必须先定义。

函数的定义:

        def 函数名():

                代码块

函数调用:

        函数名加()

# 函数的定义
def printInfo():
    '''
    这个函数是用来打印个人信息的      # 多行注释 表明函数作用
    :return:
    '''
    # 函数代码块
    print("小张的身高是%d"%180)
    print("小张的体重是%d" %150)
    print("小张的爱好是%s" %"唱歌")
    print("小张的专业是%s" %"自动化")
    pass
# 函数的调用
printInfo()
printInfo()     # 按住Ctrl鼠标放在对应函数位置会显示函数信息
printInfo()
printInfo()     # 多次调用

二、函数参数

        def 函数名(参数列表): #可以有0-n个参数

                代码块

参数的分类:必选参数、默认参数[缺省参数]、可变参数、关键字参数

参数:函数为了得到实现功能所需要的数据而设立参数,为了得到外部数据。

# 1 必选参数
def sum(a,b): # a,b在此为形式参数,形参只是意义上的参数,在定义时是不占用内存地址的
    sum=a+b
    print(sum)
    pass
# 函数调用: a,b是必选参数,是必须要赋值的
# sum(40,39)   # 40,39在此为实际参数,实参,是实际占用内存地址的
# sum(10,67)

# 2 默认参数[缺省参数] 始终存在于参数列表中的尾部 如b=20后面不能跟着必选参数
def sum1(a=30,b=20):
    print('默认参数的使用=%d'%(a+b))
    pass
# 默认参数调用
sum1()   # 在调用时若未赋值,就会用定义函数时给定的默认值
sum1(10)   # 此时a=10,b仍在等于20
sum1(10,50) # 此时a=10,b=50

# 3 可变参数[当参数的个数不确定时使用,比较灵活]
def getComputer(*args): # *args表示可变长参数  接收元组类型数据
    '''
    计算累加和
    :param args: 可变长的参数类型
    :return:
    '''
    # print(args)
    result=0
    for item in args:
        result+=item
        pass
    print('result=%d'%result)
    pass
getComputer(1)      # 输出为:result=1
getComputer(1,2)    # 输出为:result=3
getComputer(1,2,3)  # 输出为:result=6  元组类型,可变长

# 4 关键字可变参数
# **来定义
# 在函数体内 参数关键字是一个字典类型 key是一个字符串
def keyFunC(**kwargs):
    print(kwargs)
    pass
# 调用
keyFunC(1,2,3)      # 会报错,不可以传递
dictA={'name':'Leo','age':20}
keyFunC(**dictA)
keyFunC(name='Peter',age=25)        # 直接以键值对的形式传进去
keyFunC()            # 可以不传入数据,因为他接受的是可变参数

# 5 组合使用
def complexFunc(*args,**kwargs):
    print(args)         # 输出结果为元组类型()
    print(kwargs)       # 输出结果为字典类型{}
    pass

complexFunc(1,2,3,4)  # 输出结果:(1, 2, 3, 4) {}
complexFunc(1,2,3,4,name='Peter',age=25)    # 输出结果:(1, 2, 3, 4) {'name': 'Peter', 'age': 25}
complexFunc(age=25)     # 输出结果:() {'age': 25}

def TestMup(**kwargs,*args):# 不符合要求的,会报错
    '''
    可选参数必须放到关键字可选参数之前
    可选参数:接收的数据是一个元组类型
    关键字参数:接收的数据是一个字典类型
    :param kwargs:
    :param args:
    :return:
    '''
    pass

三、函数返回值

函数执行完以后会返回一个对象,如果在函数的内部有return 就可以返回实际的值,否则返回空;可以返回任意类型,返回值类型应该给取决于return后面的类型;用途:给调用方返回数据;在一个函数体内可以出现多个return值,但是肯定只能返回一个return;如果在一个函数体内执行了return,意味着函数执行完成退出了,return后面的代码语句将不会执行

def Sum(a,b):
    sum=a+b
    return sum  #将计算结果返回,返回至调用它的地方
    pass
print('函数的返回值%d'%(Sum(10,20)))

def calComputer(num):
    li=[]
    result=0
    i=1
    while i<=num:
        result+=i
        i+=1
        pass
    li.append(result)
    return li
#调用函数
value=calComputer(10)
print(type(value))    # 此时返回的类型是列表类型
print(value)           # [55]

def returnTuple():
    '''
    返回元组类型数据
    :return:
    '''
    # return 1,2,3      # 此时返回元组
    return {"name":'aaa'}   # 此时返回字典
    pass
A=returnTuple()
print(type(A))

四、函数嵌套调用

def fun1():
    print("--------执行1---------")
    pass
def fun2():
    print("--------执行2---------")
    # 调用第一个函数
    fun1()
    pass
fun2()  # 调用函数2
# 输出结果为:
# --------执行2---------
# --------执行1---------

函数的分类:根据函有参数无返回值的、数的返回值和函数的参数分为:有参数无返回值的、有参数有返回值的、无参数有返回值的。

五、练习

1、写函数:接收n个数字,求这些参数数字的和

def sumFunc(*args):     # 可变长参数传入
    # 处理接收的数据
    sum1 = 0
    for item in args:   # 采用for循环时,in后面的数据应该是一个容器、一个范围,而不是一个数字,若为数字则要变成range(10)
        sum1+=item      # 字符串、列表、元组类型的数据可以直接利用for循环遍历打印
        pass
    return sum1
pass        
rs=sumFunc(1,2,3,4,5,56)       
print('rs={}'.format(rs))   # .format() 格式化输出

2、写函数:找出传入列表或元组的奇数位对应的元素,并返回一个新的列表

def processFunc(con):   # 形参也可以接收列表或元组或字典类型
    '''
    处理列表信息,可以接收元组和列表数据
    :param con: 接收的是元组或列表
    :return: 返回的是列表
    '''
    listNew=[]
    index=1
    for i in con:
        if index%2==1:
            listNew.append(i)
            pass
        index+=1
        pass
    return listNew
    pass
# rs=processFunc([1,2,4,5,6,8,])
# print(rs)
rs=processFunc(tuple(range(10,30)))
print(rs)

3、写函数:检查传入字典的每一个value的长度,若大于2,则仅保留前两个长度的内容,并将新的内容返回给调用者。PS:字典中的value只能是字符串或列表

def dicFunc(dicParms):   #或者也可以写 **kwargs
    '''
    处理字典类型的数据
    :param dicParms: 字典
    :return:
    '''
    result={}   # 空字典
    for key,value in dicParms.items():
        if len(value)>2:
            result[key]=value[:2]   #向字典去添加数据
            pass
        else:
            result[key]=value
            pass
        pass
    return result
    pass
dictObj={'name':'小王哥','age':'20','pro':'自动化','成绩':[99,35,23]}
print(dicFunc(dictObj))

总结

本文仅仅简单介绍了Python的函数用法,包括函数参数、函数返回值和函数的嵌套

你可能感兴趣的:(python,机器学习,开发语言)