L4-20220622 20220705

L4-20220622

一 函数基础


1.函数是代码块——一系列Python语句的组合,可以在程序中运行一次或者多次

2.函数定义
 def 函数名():
     函数体[一系列的python语句,表示独立的功能]

3.函数的调用:本质上就是去执行函数定义里面的代码块,在调用函数之前 必须先定义

小实验
#作用 用于封装一些重复模块,精简代码
def printspell(括号里是参数列表):
    '''调用提示语言'''
    print('hi')
    print('hi')
    print('hi')
    print('hi')
    print('hi')
    print('hi')
    pass

#调用之前创建的
printspell()

#小练习
def printspell(name,height,weight,hobby,voc): #记得加冒号!!!!
    #函数代码块,
    print('%s的身高是%f'%(name,height))
    print('%s的体重是%f'%(name,weight))
    print('%s的爱好是%s'%(name,hobby))
    print('%s的职业是%s'%(name,voc))
    pass
#调用参数
printspell('小明',165,50,'打游戏','魔法师') #使用了之前创建的printspell函数


二 函数参数(难点)

参数的分类:
必选参数、默认参数[缺省参数]、可选参数、关键字参数
参数:其实就是函数为了实现某项特定的功能,进而为了得到实现功能所需要的数据
为了得到外部数据的
 1 必选参数
def sum(a,b): #形式参数:只是意义上的一种参数,在定义的时候是不占内存地址的
    sum=a+b
    print(sum)
    pass
函数调用  在调用的时候必选参数 是必须要赋值的
sum(20,15) #20 15 实际参数:实参,实实在在的参数,是实际占用内存地址的
 sum(15) #不能这样写的,


2:默认参数【缺省参数】 始终存在于参数列表中的尾部
# def sum1(a,b=40,c=90):
#     print('默认参数使用=%d'%(a+b))
#     pass
# def getComputer(*args): #可变长的参数


1、*args保存多余变量,保存方式为元组。
2、**args保存带有变量名的多余变量,保存方式为字典。
3. 关键字可变参数  0-n
** 来定义
在函数体内 参数关键字是一个字典类型 key是一个字符串
def keyFunc(**kwargs):
    print(kwargs)
    pass
 调用

第一种方式 直接穿字典 前面要带**
 keyFunc(1,2,3) 不可以传递的
dictA={"name":'Leo',"age":35}
 keyFunc(**dictA)

第二种方式 用键值对传
 keyFunc(name='peter',age=26,)
 keyFunc()


 组合的使用
 def complexFunc(*args,**kwargs):
#     print(args)
#     print(kwargs)
#     pass
# # complexFunc(1,2,3,4,name='刘德华')
# complexFunc(age=36)
>>>
(1,2,3,4)
{'name':'刘德华'}


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

三 函数返回值

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

# rs=Sum(10,30) #将返回值赋给其他的变量
# print(rs) #函数的返回值返回到调用的地方
def calComputer(num):
    li=[ ] #列表
    result=0
    i=1
    while i<=num:
        result+=i
        i+=1
        pass
    li.append(result)
    return li
    pass
>>>
[55]

# 调用函数
# value=calComputer(10)
# print(type(value)) #value 类型
# print(value)
def returnTuple():
    '''
    返回元组类型的数据
    :return:
    '''
    # return 1,2,3
    return {"name":"测试"}
    pass

A=returnTuple()
print(type(A))


四 函数嵌套调用

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

def fun2():
    print("--------------fun2 start-------------------")
    # 调用第一个函数
    fun1()
    print("--------------fun2 end-------------------")
    pass

fun2() #调用函数2

# 函数的分类:根据函数的返回值和函数的参数
# 有参数无返回值的
# 有参数又返回值的
# 无参数又返回值的
# 无参数无返回值的

作业

#作业1
#接受N个数字并求参数和
def sumfunction(*args):
    result=0
    for a in args:
        result+=a
    return result

apply=sumfunction(1,2,3,4)
print('apply1={0}'.format(apply)) #输出方式一format 格式化输出
apply2=sumfunction(5,6,7,8)
print('apply2=%d'%apply2)
>>
apply1=10
apply2=26

# #作业2 接受传入列表或元组的奇数再返回奇数位的新的列表
def returnodd(li1):
    li2=[]
    index=1
    for item in li1:
        if  index%2==1: #等于==
            li2.append(item)
        index+=1
    return li2

rs=returnodd([3,5,68,3567,123546])#是个函数得加括号
print(rs)

def dictFunc(dicParms):  #**kwargs
    '''
    处理字典类型的数据
    :param dicParms: 字典
    :return:
    '''
    result={} #空字典
    for key,value in dicParms.items(): #key-value
        if len(value)>2:
            result[key]=value[:2] #像字典去添加数据
            pass
        else:
            result[key]=value
            pass
        pass
    return result
    pass

# 函数调用
dictObj={'name':'夏雨','hobby':['唱歌','跳舞','运动','编程'],'pro':'中国艺术'}
# print(dictFunc(dictObj))

其他
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值