python之函数基础

函数(function)是程序非常重要的组成部分,是计算机执行命令的单元;

所谓函数,就是把 具有独立功能的代码块 组织为一个整体,在需要的时候 调用;

使用函数可以提高编写的效率以及代码的重用

1. 函数的定义和调用

函数的使用包含两个步骤:

  1. 定义函数 ------ 在函数中编写代码,实现功能
  2. 调用函数 ------ 执行编写的代码

1.1. 函数的定义格式

def 函数名():

函数封装的代码

def是英文define的缩写;

函数名的命名规则和变量的命名规则要保持一致

1.2. 函数的调用格式

函数名()

2. 函数的参数

函数的参数,可以传递数据给函数内部

参数的作用是增加函数的 通用性

2.1. 参数的定义和调用

定义函数

def 函数名(参数1,参数2):

函数代码

调用函数

函数名(参数1,参数2)

2.2. 参数的使用

需求:定义函数,传递a和b,求a和b的和

python 复制代码
# 定义函数
def sum(a,b):
    res = a + b
    print(res)


# 调用
sum(10, 20)

3. 函数的返回值

  • 开发中,有时会希望一个函数执行结束后,告诉调用者一个结果,以便调用者对结果做后续处理
  • 返回值是函数给调用方提供的结果
  • 函数中使用return关键字返回结果
  • 调用函数一方,可以通过变量来接收函数的返回结果

需求:定义函数返回两个数最大值

python 复制代码
# 定义函数
def my_max(a, b):
    if a > b:
        return a
    else:
        return b


# 调用
res = my_max(10, 20)
print(res)

4. 函数多返回值

函数可以返回多个结果

python 复制代码
# 定义函数
def func(a, b):
    sum = a + b
    sub = a - b
    return sum, sub


# 调用
sum, sub = func(20,10)
print(sum, sub)    # 30, 10

5. 函数的四种类型

函数按照是否有参数以及返回值可以将函数分成四种类型

python 复制代码
# 1. 无参无返回值
def fun1():
    print("无参无返回值")


fun1()


# 2. 无参有返回值
def fun2():
    return random.randint(0,10)    // 包括0不包括10


fun2()


# 有参无返回值
def fun3(name):
    print(name)


fun3("张三")


# 4. 有参有返回值
def fun4(a, b):
    return a + b


fun4(1, 2)

6. 函数的形参和实参

6.1. 形参

全称为形式参数。是在定义函数的时候使用的参数,用来接收调用该函数时传入的参数

def sum(a, b):

return a + b

ab属于形参,形参在函数调用的时候才赋值

6.2. 实参

全称为实际参数,是在调用时传递给函数的参数

sum(10, 20)

调用sum函数时传入的1020即是实参

6.3. 形参作用域

作用域指的是变量的可用范围

  • 形参的作用域只在函数内,超出函数就不能再使用了
  • 作用域可以减少不同函数的命名冲突

7. 局部变量和全局变量

7.1. 局部变量

  • 局部变量 ,指的是在函数内部定义的变量
  • 局部变量的目的是存储需要临时保存的数据
python 复制代码
def func1():
    # 局部变量
    b = 20
    print('hello%d' % b) 


func1()
print(b)    # 报错

注意:

  • 不同的函数,可以定义相同名字的局部变量
  • 局部变量的作用域只在函数内部

7.2. 全局变量

全局变量是在整个py文件中声明,全局范围内都可以访问

python 复制代码
# 全局变量
m = 10
n = 20

def func():
    # 函数内访问全局变量
    print(m)

7.3. 函数内修改全局变量

如果要在函数内部修改全局变量 需要首先使用global关键字将声明全局变量

python 复制代码
# 定义全局变量
m = 10

def func():
    # 使用global声明全局变量
    global m
    # 将m修改成20
    m = 30
    print("函数内部 m=", m)


func()
print(m)    # 30
相关推荐
孟健12 小时前
Karpathy 用 200 行纯 Python 从零实现 GPT:代码逐行解析
python
码路飞13 小时前
写了个 AI 聊天页面,被 5 种流式格式折腾了一整天 😭
javascript·python
曲幽16 小时前
FastAPI压力测试实战:Locust模拟真实用户并发及优化建议
python·fastapi·web·locust·asyncio·test·uvicorn·workers
敏编程20 小时前
一天一个Python库:jsonschema - JSON 数据验证利器
python
前端付豪20 小时前
LangChain记忆:通过Memory记住上次的对话细节
人工智能·python·langchain
databook21 小时前
ManimCE v0.20.1 发布:LaTeX 渲染修复与动画稳定性提升
python·动效
花酒锄作田1 天前
使用 pkgutil 实现动态插件系统
python
前端付豪2 天前
LangChain链 写一篇完美推文?用SequencialChain链接不同的组件
人工智能·python·langchain
曲幽2 天前
FastAPI实战:打造本地文生图接口,ollama+diffusers让AI绘画更听话
python·fastapi·web·cors·diffusers·lcm·ollama·dreamshaper8·txt2img
老赵全栈实战2 天前
Pydantic配置管理最佳实践(一)
python