python笔记-day8-函数进阶

前言
python语法学习,留给需要的人,懂得都懂!!

# coding=utf8
# @time:2022/4/13 15:04
# Author 浩宇

# 一、函数进阶
# 1.函数的参数
# 1)位置参数和关键字参数
'''''''''
实参按章传递方式的不同分为位置参数和关键字参数两种;
a、位置参数
调用函数的时候,让实参和形参一一对应(第一个实参给第一个形参赋值,第二个实参给第二个形参赋值。。。)

def func1(x,y,z):
    print(f'x:{x},y:{y},z:{z}')
func1(1,2,3)

# 输出:x:1,y:2,z:3


b、关键字参数
让实参和形参通过关键字(形参名)对应;
格式:形参名1=数据1,形参名2=数据2,....

def func1(x,y,z):
    print(f'x:{x},y:{y},z:{z}')
func1(x=123,z=4,y=23)
# 输出结果:x:123,y:23,z:4

注意:不管是什么参数,必须保证参数都有值!

c、关键字参数和位置参数混用
混用的时候,位置参数必须在关键字参数前面

def func1(x,y,z):
    print(f'x:{x},y:{y},z:{z}')
func1(23,z=40,y=22)
# 输出结果:x:23,y:22,z:40
'''''''''

# 2.参数默认值
'''''''''
定义函数的时候,可以给蚕食赋默认值,调用函数的时候有默认值的参数可以不赋值
第一种情况:
def func2(x,y,z=100):
    print(f'x:{x},y:{y},z:{z}')
func2(1,2)
# 输出结果:x:1,y:2,z:100
——————————————————————————————————
第二种情况:
def func2(x,y,z=100):
    print(f'x:{x},y:{y},z:{z}')
func2(1,2,3)
# 输出结果:x:1,y:2,z:3

注意:
有默认值的必须写在最后面;
'''''''''

# 3.参数类型说明
'''''''''
定义函数的时候,可以对参数类型进行说明
1)赋默认值,默认值是什么类型,参数就是什么类型

def func4(x=''):
    pass
func4()
2)形参名:数据类型

def func5(x:list):
    pass
func5()
'''''''''

# 4.不定长参数
'''''''''
在形参前加*或者加**,就可以让这个参数变成不定长参数;不定长参数的形参可以同事接受多个实参
1)带*的不定长参数
带*的参数会变成一个元组,元组中的元素就是对应的实参
# 例子:
def func6(*x):
    print(f'x:{x}')
func6()
func6(11)
func6(11,12)
# 输出结果:x:()  x:(11,)  x:(11, 12)

注意:a.一个函数可以同时存在带*和不带*的参数,如果不带*的在带*的后面,不带*的参数必须使用关键字参数
     b.带*的参数必须使用位置参数
2)带**的不定长参数 -   只能传【关键字参数】
带**的不定长参数会变成一个字典,调用的时候用关键字参数传参,每个关键字就是字典的key,关键字后面的数据就是字典的value

注意:a.定义的时候定长参数必须放在**不定长参数的前面
     b.带*和带**的不定长参数可以同时存在,但是*必须在**的前面。(如果同时存在,可以让函数在调用的时候更加灵活)
 # 例子:    
def func10(x,**y):
    print(f'x"{x},y:{y}')

func10(10,a=20,c=30,b=90)
func10(a=20,c=30,b=90,x=100)

# 例子:
def func11(*x,**y):
    print(f'x:{x},y:{y}')
func11(1,2,3)   # x:(1, 2, 3),y:{}
func11(a=11,b=22)   # x:(),y:{'a': 11, 'b': 22}
'''''''''
# def func6(*x):
#     print(f'x:{x}')
# func6()
# func6(11)
# func6(11,12)
# 输出结果:x:()  x:(11,)  x:(11, 12)

# 练习:定义一个函数,可以求多个数的和
# sum1(10,20)  sum1(10,20,30)



# 5.返回值
'''''''''
1)什么是返回值
返回值就是从函数内部传递到函数外部的数据。(如果实现函数的功能产生了新的数据,一般都需要将这个新的数据通过返回值返回)
2)怎么确定函数的返回值
在函数体中,通过return关键字来返回的返回值:   return 数据
注意:同一个函数中,只有一个return有效。(因为执行函数体的时候只要遇到return函数直接结束)
     如果要在一个函数中返回多个数据,用能够保存多个数据的容器就行了。常用元组:return 数据1,数据2,数据n
3)怎么在函数外部获取函数返回值
获取函数调用表达式的值就是获取函数的返回值。(返回值对应的数据能够做的,函数调用表达式都可以做)

'''''''''




# 6.全局变量和局部变量

# 7.匿名函数
# 1)什么是匿名函数
'''''''''
匿名函数的本质还是函数,但是匿名函数只能通过一条语句来实现函数的功能
a.语法:
lambda 函数名 形参列表:返回值
給匿名函数加个名字:
函数名=lambda 函数名 形参列表:返回值

相当于:
def 函数名(形参列表):
    return 返回值
'''''''''

# 举例:求两个数的和
# 常规方法:
# def sum1(num1,num2):
#     return num1+num2
# 用匿名函数:
# sum1=lambda num1,num2:num1+num2
# print(sum1(10,20))


# 练习:写一个匿名函数func15,功能是打印一个数的平方?
# func15 = lambda num:print(num**2)
# func15(2) # 4

更多安全分享,请关注【安全info】微信公众号!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

流浪法师12

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值