Python之函数-函数概念

Python之函数-函数概念

函数

数学定义

  • y=f(x) ,y是x的函数,x是自变量。y=f(x0, x1, ..., xn)

Python函数

  • 由若干语句组成的语句块、函数名称、参数列表构成,它是组织代码的最小单元
  • 完成一定的功能

函数的作用

  • 结构化编程对代码的最基本的封装,一般按照功能组织一段代码
  • 封装的目的为了复用,减少冗余代码
  • 代码更加简洁美观、可读易懂

函数的分类

  • 内建函数,如max()、reversed()等
  • 库函数,如math.ceil()等
  • 自定义函数,使用def关键字定义

函数定义

python 复制代码
def 函数名(参数列表):
	函数体(代码块)
	[return 返回值]
  • 函数名就是标识符,命名要求一样
  • 语句块必须缩进,约定4个空格
  • Python的函数若没有return语句,会隐式返回一个None值
  • 定义中的参数列表称为形式参数,只是一种符号表达(标识符),简称形参

函数调用

  • 函数定义,只是声明了一个函数,它不能被执行,需要调用执行
  • 调用的方式,就是函数名后加上小括号,如有必要在括号内填写上参数
  • 调用时写的参数是实际参数,是实实在在传入的值,简称实参
python 复制代码
def add(x, y):          # 函数定义 
	result = x + y      # 函数体 
	return result       # 返回值
ret = add(4,5)          # 函数调用,可能有返回值,使用变量接收这个返回值 
print(ret)              # print函数加上括号也是调用

# 返回结果:9

代码示例

python 复制代码
def add(x, y): # add 标识符,函数名,指向一个函数对象
	result = x + y # 函数逻辑
	return result  # return返回值
  • def关键字,define定义,定义时
  • (参数列表),参数列表中可以有n个参数(可以试0个),这些参数叫做形式参数。
  • 简称形参。形参也是标识符。
python 复制代码
add(4, 5)

# 调用add函数,传入4, 5的值
# 返回结果:9
python 复制代码
print(callable(add)) 

# callable返回True/False,确认此对象是否可以被调用
# 返回结果:True
python 复制代码
ret = add(4, 5) # 函数标识符后面加(),就是调用、执行called。调用时
print(ret)

# 返回结果:9
python 复制代码
add 

# 把一个函数打印出来,打印的内容是内存的0,1的展示方式,一般叫函数签名
# 返回结果:<function __main__.add(x, y)>
python 复制代码
def add(x, y):
    r = x + y
    return r

# 重新定义一个函数
python 复制代码
add(1, 2), add([1], [2]), add('a', 'b'), add(b'a', b'b'), add((1,), (2,)), add((1), (2))

# 这些值都能直接相加,但是要分清结果是什么
# 返回结果:(3, [1, 2], 'ab', b'ab', (1, 2), 3)
相关推荐
怕浪猫6 小时前
RAG 面试 6 连问,从原理到优化全部覆盖
python·算法·面试
高洁016 小时前
具身智能中的世界模型训练
人工智能·python·深度学习·机器学习·transformer
无线通信科研笔记6 小时前
IEEE TVT 2026 论文精读与完整复现|相位误差如何重塑近场 RIS 的幅相响应
论文阅读·人工智能·python·算法·论文笔记
朝朝辞暮i7 小时前
VLA 系统学习第 1 课:VLA 到底在干什么?
人工智能·python·计算机视觉·vla
2601_962885727 小时前
如何用 Python 自动识别股票的支撑位与压力位?
开发语言·python
爱吃奥利奥_wen7 小时前
面向对象三板斧:封装、继承、多态,到底在“装“什么、“承“什么、“变“什么?
开发语言·经验分享·c#
北冥有鱼被烹8 小时前
VCSEL全景解析:与光模块NPO CPO的关系、市场量化分析与产业链影响
python
我可能是个假开发8 小时前
FTP Unicode 文件名导致 `550` 的问题分析与解决方案
java·开发语言·spring
caoerzhong8 小时前
中小企业上 WMS 该先上哪几块:JeeWMS 开源 Java 仓库管理系统的分批上线清单
java·python·开源
正在走向自律8 小时前
AI数据分析与可视化:从基础到应用实践
服务器·人工智能·python·机器学习·数据分析·pandas