Python函数运用—Python Day4

本文详细介绍了Python函数的使用,包括函数的定义、调用、参数类型(必选、默认、可变长、关键字参数)以及返回值。通过实例展示了如何创建并调用函数,以及如何处理不同类型的参数。此外,还探讨了函数的嵌套和分类,并给出了几个练习题,帮助读者巩固函数的使用技巧。

Python函数
基本上所有的高级语言都支持函数,Python也不例外。Python不但能非常灵活地定义函数,而且本身内置了很多有用的函数,可以直接调用。
函数就是最基本的一种代码抽象的方式。
为什么要使用函数:
代码的复用最大化以及最小化冗余代码,整体代码结构清晰,问题局部化
函数定义:
def 函数名():
函数体[一系列的python语句,表示独立的功能]
函数的调用:
本质上就是去执行函数定义里面的代码块,在调用函数之前 必须先定义
在这里插入图片描述
体验一下简单的函数运用

def printInfo():
    '''
    函数是用来打印小张个人信息的
    :return:
    '''
    print('小张的身高是%f' % 1.73)
    print('小张的体重是%f' % 160)
    print('小张的爱好是%s' % '唱歌')
    print('小张的信息是%s' % '计算机信息管理')
    print('____________________________')
    pass
printInfo()
def printInfo(Name,High,Wight,Hobby,Massage):
    print('%s的身高是%f' % (Name,High))
    print('%s的体重是%f' %  (Name,Wight))
    print('%s的爱好是%s' %  (Name,Hobby))
    print('%s的信息是%s' %  (Name,Massage))
    print('____________________________')
    pass
printInfo('小明',1.81,150,"打游戏","计算机")
printInfo('Peter',1.75,140,"码代码","软件开发")

函数的参数
参数的分类:必选参数、默认参数、可选参数、关键字参数
参数:其实就是函数为了实现某项特定的功能,进而为了得到实现功能所需要的的数据,为了得到外部数据的

print('---------------1.必选参数----------------------')
def SumA(a,b): #a b称为形式参数:只是意义上的一种参数,不占内存地址的
    Sum1=a+b
    print(Sum1)
SumA(5,6)   #5 6是实际参数:实参是实实在在的参数,占内存地址的
print('---------------2.默认参数----------------------')
def SumB(a=20,b=30):
    Sum2 = a + b
    print(Sum2)
    pass
SumB()  #在调用的时候如果未赋值,就会用定义函数时给定的值
SumB(50,30)  #也可以赋值
print('---------------3.可变长参数----------------------')
def  SumC(*args):
    Result=0
    for Item in args:
        Result += Item
    print(Result)
SumC(1,2)
SumC(1,2,3,4,5,6,7,8)
print('---------------4.关键字可变参数----------------------')
#在函数体内,这个参数关键字是一个字典类型,key是一个字符串
def keyFunc(**kwargs):
    print(kwargs)
dictA={"Name":"Peter","High":1.85,"Wight":150,"Hobby":"打游戏","Massage":"计算机"}
keyFunc(**dictA)  #必须加两个**
keyFunc()
print('---------------5.组合可变参数----------------------')
def CFunc(*args,**kwargs):  #可选参数必须放到关键字可选参数之前
    '''
    可选参数必须放在关键字可选参数之前
    可选参数:接收的数据是一个元组类型
    关键字可选参数:接收的数据是一个字段类型
    :param args: 
    :param kwargs: 
    :return: 
    '''
    print(args)
    print(kwargs)
CFunc(1,2,3,4,name='李易峰')
CFunc(age=36)

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

print('---------------1.返回值为值----------------------')
def SumA(a,b):
    SumA=a+b
    return SumA  #将计算的结果返回
Sum1=SumA(20,30)  #将返回值赋值给其他变量
print(Sum1)   #函数的返回值返回到调用的地方
print('---------------2.返回值为值----------------------')
def SumB(num):
    result=0
    i=1
    while i<=num:
        result+=i
        i+=1
        pass
    return result
Sum2=SumB(10)
print(Sum2)
print('---------------3.返回值为列表----------------------')
def ListC(num):
    List=[]
    result=0
    i=1
    while i<=num:
        result+=i
        i+=1
        List.append(result)
        pass
    return List
Sum3=ListC (10)
print(type(Sum3))
print(Sum3)
print('---------------4.返回值为元组----------------------')
def Tuple():
    """
    返回元组类型的数据
    :return:
    """
    return 1,2,3
TupleA=Tuple()
print(TupleA)
print('---------------5.返回值为字典----------------------')
def Dict():
    """
    返回元组类型的数据
    :return:
    """
    return {"Name":"李易峰"}
Dict1=Dict()
print(Dict1)

函数的嵌套

def fun1():
   print("----------------fun1 start------------------")
   print("----------------执行代码省略------------------")
   print("----------------fun1 end------------------")
   pass
def fun2():
    print("----------------fun2 start------------------")
    fun1()  #嵌套了fun1()函数
    print("----------------fun2 end------------------")
    pass
fun2()

函数的分类:有参数无返回值;有参数有返回值;无参数有返回值;无参数无返回值

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

def SumA(*arts):
    sum1=0
    for item in arts:
        sum1+=item
    print(sum1)
    pass
SumA(5,6,9,8,2)

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

def ListA(list1):
    list_new = []
    index = 1
    for item in list1:
        if index % 2 == 1:
            list_new.append(item)
        index += 1
    return list_new


rs = ListA([1, 2, 3, 4, 5])
print(rs)

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

print('-------------不定义字典元素做法---------------')
def dictFunc(**Abc) :
    result = {}
    for key, value in Abc.items():
        if len(value) > 2:
            result[key]=value[0:2]   # 往字典里添加数据
            pass
        else:
            result[key] = value
    return result
dicA = {"Name":"夏大天","Hobby":"peter","Massage":"计算机"}
print(dictFunc(**dicA))

print('-------------定义字典元素做法---------------')
def dictFunc(Efg) :
    result = {}
    for key, value in Efg.items():
        if len(value) > 2:
            result[key]=value[0:2]   # 往字典里添加数据
            pass
        else:
            result[key] = value
    return result
dicA = {"Name":"夏大天","Hobby":"peter","Massage":"计算机"}
print(dictFunc(dicA))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值