help(函数) #查看函数功能
函数:
1.功能性
2.隐藏细节
3.代码重用
import sys
sys.setrecursionlimit = 1000000 # to increase the recursion limit
def print(code):
print(code)
print('python')
自定义函数 如果与内置函数同名,可能会引起无线递归
def print_code(code): # 定义一个名为print的函数,接受一个参数code
print(code) # 在函数内部调用内置的print函数,打印传入的code参数
print_code('python')
函数中没有return语句,默认返回None
当函数内部遇到return语句,函数会立即返回,不再执行后面的代码
函数可以接受任意数量的参数,参数之间用逗号分隔
函数的参数可以是任意类型,包括数字、字符串、列表、字典等
函数的参数可以设置默认值,如果没有传入参数,则使用默认值
函数的参数可以设置可变参数,使用*args表示,可以接受任意数量的参数,这些参数会被封装成一个元组
函数的参数可以设置关键字参数,使用**kwargs表示,可以接受任意数量的关键字参数,这些参数会被封装成一个字典
函数的参数可以设置命名参数,使用args和**kwargs可以同时使用,args必须在**kwargs之前
函数的参数可以设置参数的顺序,使用args和**kwargs可以同时使用,args必须在**kwargs之前
函数也可以返回一个函数
函数可以返回多个值
def damage(skill1,skill2):
# 计算第一个技能的伤害值
# 伤害值由技能1的值乘以2再加上5
damage1 = 2 * skill1 + 5
# 计算第二个技能的伤害值
# 伤害值由技能2的值平方后再乘以0.5
damage2 = skill2 * skill2 * 0.5
# 返回两个技能的伤害值
return damage1,damage2
damages_skill1,damsge_skill2 = damage(2,4)
print(damages_skill1,damsge_skill2)
序列解包,将序列中的元素依次赋值给多个变量
a,b,c = 1,2,3
d = 1,2,3
a,b,c = d
print(a,b,c)
print(a,b,c)
# 参数
1. 必须参数
函数定义的时候 形式参数
函数调用的时候 实际参数
def add(a,b): # 定义一个名为add的函数,接受两个参数a和b
return a+b # 返回a和b的和
d = add(13,2)
print(d)
## 2.关键字参数 可以不指定参数顺序
def add(a,b): # 定义一个名为add的函数,接受两个参数a和b
return a+b # 返回a和b的和
d = add(b = 1,a = 2)
print(d)
## 3.默认参数
def add(a,b=1): # 定义一个名为add的函数,接受两个参数a和b,b的默认值为1
return a+b # 返回a和b的和
d = add(1)
print(d)
# 如果要改变默认参数 直接传入参数即可(实参顺序必须要和形参顺序一致)
# 非默认参数必须在默认参数之前 python规范
## 4.可变参数
# *args 传入的参数为元组
def add(*args): # 定义一个名为add的函数,接受任意数量的参数
return sum(args) # 返回参数的和
d = add(1,2,3,4,5)
print(d)
# **kwargs 传入的参数为字典
def add(**kwargs): # 定义一个名为add的函数,接受任意数量的参数
return sum(kwargs.values()) # 返回参数的和
d = add(a=1,b=2,c=3)
print(d)
# *args和**kwargs可以同时使用,但必须先写*args,后写**kwargs
# *args和**kwargs可以接受任意数量的参数,但必须按照顺序传入
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战