python基础语法5-1函数及其参数

本文详细探讨了Python的基础语法中的函数概念,包括如何定义函数、参数的使用、参数摆放规则、函数文档的编写以及函数的返回值。通过实例解析,帮助读者掌握函数的运用,并介绍了函数的两大类别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

函数

什么是函数?

function  英文  ->  函数,功能
函数就是一个具有特定功能的语法结构。

作用:提高代码的复用率,提高开发效率,减少后期的维护成本
定义函数
【基本结构】:
def 函数名():
    实现函数功能的代码
    实现函数功能的代码
    实现函数功能的代码
    ...
举个例子:
def man(name,sex):
    '''
    这个函数的功能是造一个奥特曼
    name:这里写你给奥特曼取得名字
    sex:这里写奥特曼的性别
    '''
    print(name)
    print(sex)
man("大锤","男")

特征:
    1.函数不调用不会执行
    2.函数可以调用N次不受次数限制

函数名的定义:
    1.推荐使用英文,可以使用拼音,不可以使用汉字
    2.可以使用数字,但是不能以数字开头
    3.不可以使用特殊字符,除了下划线_
    4.函数名严格区分大小写
    5.函数命名要有意义
    6.函数名不能和系统保留关键字冲突
    7.函数名尽量不要和系统已存在的内建函数同名,以免覆盖内建函数
函数的参数
(1)函数参数概念及分类
    函数参数:调用时需要传递的数据.
    函数参数大类分为形参和实参:
        形参意思: 函数定义时的参数
        实参意思: 函数调用时的参数
    形实关系:函数调用时,形参和实参个数需要一一对应
    形参种类: 普通参数,默认参数,普通收集参数,命名关键字参数,关键字收集参数
    实参种类: 普通实参,关键字实参
(2)普通参数(位置参数)普通的参数,接收实参传递的值
(3)默认参数:位于普通参数后面,具有默认值的参数
		语法:(x,y=2)   y就是默认参数
(4)收集参数:
	普通收集参数:用于专门收集多余普通参数的是普通收集参数,形成一个新的元组
		语法:参数前面加*	例:*args
	关键字收集参数:用于专门收集多余关键字实参的是关键字收集参数,形成一个新的字典
		语法:参数前面加**	例:**kwargs	
(5)命名关键字参数:定义时放在*号后面的参数,调用时强制必须传入指定参数名才能调用
		语法:(a,*,x) x是命名关键字参数
   如果函数参数中已经有了收集参数,那么收集参数后面的参数即为命名关键字参数
   		语法:(*args,x,y)
(6)形参声明的位置顺序:
	普通参数 -> 默认参数 -> 收集参数 -> 命名关键字参数 -> 关键字收集参数
	def func(a,b,c=1,*args,d,**kw)
	a,b为普通参数,c是默认参数,args是收集参数,d是命名关键字参数,kw是关键字收集参数
	极少出现五种参数同时出现的情况
	def func(a,b=2,*,c,d,**kw)
	a为普通参数,b是默认参数,c,d是命名关键字参数 ,kw是关键字收集参数
(7)#注意:实参将值传递给形参的过程,本质上就是变量赋值操作
所有参数的摆放问题:
1.实参:普通实参在前,关键字参数在后
2.形参:
    关键字收集参数一定在最后出现
    收集参数推荐在普通参数之后使用
    推荐顺序:普通形参,收集参数,关键字收集参数
函数文档
1.使用help函数查看
	help(函数名)
2.函数名.__doc__
	print(id.__doc__)

接下来就使用之前的那个代码来试验一下help函数查看:

def man(name,sex):
    '''
    这个函数的功能是造一个奥特曼
    name:这里写你给奥特曼取得名字
    sex:这里写奥特曼的性别
    '''
    print(name)
    print(sex)
man("大锤","男")
print(help(man))
函数的返回值
函数执行完毕之后可以得到一个结果,该结果可以被接受或者使用
函数划分为两大类:
执行过程函数:函数执行之后没有任何结果可以在函数之外接收到(没有return语句的函数)
res = print("你好")
print(res)
None 空值
具有返回值的函数:函数执行之后可以返回一个结果到函数之外被接收或者使用(具有return语句)

res = id(1)
print(res)

def play(name):
    print(name,"要变身啦!")
    return name+"变成了假面骑士"
res = play("小刚")
print(res+"小智吓傻了")
print(play("小刚"))

return:返回的意思
执行过程函数:送外卖的,把外卖送给客户,结束了(送外卖是过程,送完之后没得到任何东西)
具有返回值的函数:送外卖,把外卖送给客户,结束了得到了钱(送外卖是过程,送完之后得到了钱)

return的另外一个作用:
终止函数执行,函数运行过程中一旦执行了return语句,那么函数就会结束执行。

def play():
    print("hello")
    return 1
    print("世界")
play()

id()  具有返回值的函数
type() 具有返回值的函数
int()  具有返回值的函数
....
所有函数都是有返回值的,只是执行过程函数的返回值是None
例:print() 执行过程函数   没有返回值 只有一个None值 (None表示没有值)


return四问:
1.可以在函数里面写多个return 语句吗? 可以,但不能是在同个作用域下
def func(name):
    if name == "小红":
        return "小红你来啦"
    elif name == "小明":
        return "小明滚出去"
    elif name == "小强":
        return "杀虫剂呢?"
    else:
        return "名字未出现在名单中"
res = func("小绿")
print(res)
2.拓展之后我们还可以写一个具有返回值的函数,模拟其他数据类型转换成字符串的函数
def str1(input_str):
    return str(input_str)
list1 = [1,2,3,4]
res = str1(list1)
print(res,type(res))
3.而我们大家知道其他数据类型转换为list,int类型转换时是会报错的,但是我们可以写一段代码让它们在转换的时候不会报错
def list1(input_type):
    if isinstance(input_type,int)return "对不起,int类型无法转换成列表"
    else:
        return list(input_type)
num = 1
res = list1(num)
print(res)
4.return 可以返回多个值吗?可以,会组成一个元组
def func():
    return "你好",1,"world",[1,2,3,4]
res = func()
print(res,type(res))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值