python——函数

概念

函数就是将一段具有独立功能的代码块整合到一个整体并命名,在需要的位置调用这个名称去完成对应的需求

定义函数

python 复制代码
def 函数名(参数):
    代码1
	......
    return 值

函数名

函数名由编程人员自定义的,满足标识符命名规则即可

参数

形参

在定义函数是定义接收数据的参数

实参

函数调用时,传入的真实数据

形式

位置参数

调用函数时根据函数定义的参数位置来传递参数

python 复制代码
def f(name,age):
    print(f"{name}  ,age  {age} ")

f('zhangsan',18)
关键字参数

通过"键=值"形式加以指定

在函数调用时,如果有位置参数时,位置参数必须在关键字参数前面

python 复制代码
def f(name,age):
    print(f"{name}  ,age  {age} ")

f(age=18,name="John")
缺省参数

在定义函数的时候,也为参数提供了默认值,如果在调用函数时,不传值,则默认使用定义时使用的值

python 复制代码
def f(name,age=15):
    print(f"{name}  ,age  {age} ")

f(name="John")
不定长参数

用于不确定调用的时候会传递多少个参数的场景

  • 用包裹(packing)位置参数
    传进来的所有参数都会被args变量手机,它会根据传进参数的位置合并为一个元组
python 复制代码
def f(*agrs):
    print(agrs)

f("John","18") #('John', '18')
  • 包裹关键字传递
python 复制代码
def f(** agrs):
    print(agrs)

f(name="zhangsan",age=18)

返回值

使用关键字return

还有退出当前函数的作用

返回值可以作为参数传递

调用函数

函数必须先定义后使用

当调用函数时,解释器回到定义函数的地方去执行下方缩进的代码,当这些代码执行完,回到调用函数的位置,继续向下执行

说明文档

help函数:查看函数的说明文档

python 复制代码
def 函数名(参数):
   """说明文档"""
   代码
   .....

作用域

变量生效的范围

局部变量

在函数体内部,临时保存数据,也就是当函数调用完成后,会销毁局部变量

全局变量

  • 在函数体内、外都生效的变量
  • 在函数中,如果去使用 a= xx 去修改全局变量,那么a这个全局变量,并不会发生改变 ,只是等于在函数中申请了一个新的局部变量
  • 如果要在函数中去修改全局变量,使用的语法是,
python 复制代码
global  a 
a=200

交换变量

python 复制代码
a,b =1,2
a,b = b,a

引用

在python中,值是靠引用来传递来的,

用id()来判断两个变量是否为同一个值的引用,返回的是内存的地址标识

递归函数

特点

函数内部自己调用自己

必须有出口

python 复制代码
def add(num):
    if num ==1 :
        return 1
    return num+add(num-1)

print(add(10))
相关推荐
李少兄1 分钟前
Linux 服务器从零部署 kkFileView 完全指南(Docker 方案)
linux·服务器·docker
niuniudengdeng2 分钟前
从小程序到 WebView:一个理发店管理系统的全栈架构设计与落地实践
java·python
小张同学a.3 分钟前
OpenStack 私有云实战 3—— Neutron 网络服务与 Dashboard 控制台部署
linux·运维·服务器·openstack
DogDaoDao4 分钟前
HarmonyOS 深度解析:从微内核到 ArkTS 工程实战
android·linux·ios·华为·程序员·harmonyos·harmonyos next
心易行者8 分钟前
html在线运行搭AI编程验证流水线:5步走完从生成到到上线全流程
人工智能·python·ai编程
从零开始的嵌入式之旅9 分钟前
day31
linux·c语言·经验分享·笔记·嵌入式硬件
一晌小贪欢13 分钟前
Python办公17:暴力拆分——按页数或指定范围提取 PDF 核心页面
java·开发语言·python·pdf·excel·数据可视化·python办公
青 春 记 忆14 分钟前
零基础入门python31:Django商城第一步——创建项目并跑通第一个请求
python·django·后端开发
孫治AllenSun14 分钟前
【LangChain4J-06】Prompt 工程与模板化开发
开发语言·python·prompt
qq_4260039616 分钟前
多语言新增语种全量测试策略
前端·javascript·python·pycharm·自动化