python基础--※函数基础/位置传参与关键字传参顺序

1、函数的定义

def
函数四大类型:
1)无参数无返回值
2)有参数无返回值
3)有参数有返回值
4)无参数有返回值
return,带着结果,直接返回到方法调用处.从右往左看

2.1有参数无返回值
#name/age叫形式参数,类似于占位符,调用时必须传
def show_msg(name,age):
	#函数体
	print(name,age)
#张三、99叫实参
#调用函数
show_msg('张三','99')  
2.2有参数有返回值
def sum(a,b):
	#计算传递过来参数的和并将结果返回到函数外部
	result=a+b
	#带着结果,直接返回到方法调用处,即将结果返回给c
	return result
	#return后的代码不会执行
	print('这段代码不会执行')
c=sum(1,2)
  • 返回多个值
    -return a,b #默认为元祖
    在这里插入图片描述

2、局部变量和全局变量

局部变量

在函数内定义的变量叫局部变量,只能在函数体里用

全局变量

在函数外定义的变量叫全局变量,可以在不同函数和函数外使用

a=99
def show():
    a=100
show()
print(a)

结果
99
因为打印在函数外部,

需求:在函数体里面修改全局变量

a=99
def show():
	#表示对全局变量修改
	global a
    a=100
show()
print(a)

结果
100

3、调用参数的传参方式:1、位置传参2、关键字传参

3.1位置传参:必须按照函数参数顺序传参

def show(name,age):
	print()
show('zhangsan',18)

默认参数:
注意:默认参数必须指向不变对象,否则调用函数时会改变默认参数的值

3.2关键字传参

def show(name,age):
	print()
show(age=18,name='zhangsan')     

前面位置传参,后面关键字传参
show(‘zhangsan’,age=18)
不可以前面关键字传参,后面位置传参

==*3.2.1必须使用关键字传参的场景,后面代表这个参数调用时必须使用关键字方式==即命名关键字传参

def show_msg(name,age,*,sex,addr):
    print()
show_msg('lisi',20,sex='女',addr=‘1’)

4、函数的不定长参数:1、不定长位置参数2、不定长关键字参数

4.1、不定长位置参数

#*args会把函数调用传入的位置参数封装到一个元祖
#*args程序员约定俗成
def sum_num(*args):
print(args,type(args))

需要注意:在不定长参数函数中调用不定长函数时,使用拆包方法
错误代码:

def show_msg(*args):
    print(args)
def show(*args):
    print(args)
    show_msg(args)
show(1,2)

结果
(1, 2)
((1, 2),)

正确代码:

def show_msg(*args):
    print(args)
def show(*args):
    print(args)
    #拆包
    show_msg(*args)
show(1,2)

结果
(1, 2)
(1, 2)

4.2、不定长关键字参数

#*args会把函数调用传入的位置参数封装到一个字典
def show_msg(**kwargs):
print(kwargs,type(kwargs))
#将关键字参数的key/value都打印出来
for key,value in kwargs.items():
print(key,value)
show_msg(a=1,b=2)

5、默认参数(缺省参数):在函数定义是就有值

必选参数放在前面,缺省参数放在最后

6、函数坑

先写逻辑
1、获取数据
2、处理数据
3、预测性分析

def show():
#函数体为空会报错,可以加个pass
pass
show()

重点:
**规则:1)不定长关键字参数永远放在最后
2)前面使用关键字传参,后面不可以使用位置传参
def show_msg(name,age,*args,kwargs):
print()
show_msg(name=‘lisi’,20,2,3,4,5,a=‘pinguo’)

3)总体顺序:位置传参在前,关键字传参在后
4)传参顺序:必选参数,默认值参数,可变参数,命名关键字参数,关键字参数

1)如果定义了第二个和第一个函数名相同,第一个会被覆盖;
2)变量名和函数名相同,会起冲突

7、递归函数

在函数里面调用函数本身就是递归函数
主要用于阶乘
必须设置结束递归的条件
#编辑器

def calc_num(num):
    #计算1的阶乘时直接返回
    if num == 1:
        return 1
    else:
    	#注意要有返回值
        return num * calc_num(num -1)
calc_num(5)

#编辑器有最大递归次数,jupyter 3000,pychram 1000

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值