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))
相关推荐
不会就选b7 分钟前
Linux之ip地址<3>
linux·运维·tcp/ip
hhb_6187 分钟前
Flask+SQLite实现用户管理接口
python·sqlite·flask
全栈练习生9 分钟前
RAG 准确率保障的体系化方案
python·ai
Victor Zhong17 分钟前
llama.cpp 部署大模型到 Ubuntu 台式机 SOP
linux·ubuntu·llama
秋秋小事18 分钟前
python 基础知识总结(一)
python
蜗牛互联网28 分钟前
Python调用Gemini Structured Outputs实现工单路由门禁
java·开发语言·人工智能·python
AAA代码批发商41 分钟前
DAYS 57【Linux 驱动深度】I2C 子系统驱动开发全指南:从架构、核心数据结构到设备驱动实战
linux·驱动开发·架构·内核开发·i2c 子系统
TomEval44 分钟前
【测AI】第12篇:NLP / CV / 语音 —— 三大 AI 方向速通
人工智能·python·自然语言处理·aigc·测试用例
SEO_juper1 小时前
给网页做可引用性评分:判断内容够不够让 AI 引用(GEO 工具,附代码)
开发语言·人工智能·爬虫·python·seo·独立站
橙色云-智橙协同研发1 小时前
电子高科技行业:机械与电子(MCAD & ECAD)如何协同?
大数据·运维·服务器·人工智能·安全