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
相关推荐
Kisorge26 分钟前
【C语言】指针数组、数组指针、函数指针、指针函数、函数指针数组、回调函数
c语言·开发语言
轻口味1 小时前
命名空间与模块化概述
开发语言·前端·javascript
晓纪同学2 小时前
QT-简单视觉框架代码
开发语言·qt
威桑2 小时前
Qt SizePolicy详解:minimum 与 minimumExpanding 的区别
开发语言·qt·扩张策略
飞飞-躺着更舒服2 小时前
【QT】实现电子飞行显示器(简易版)
开发语言·qt
明月看潮生3 小时前
青少年编程与数学 02-004 Go语言Web编程 16课题、并发编程
开发语言·青少年编程·并发编程·编程与数学·goweb
明月看潮生3 小时前
青少年编程与数学 02-004 Go语言Web编程 17课题、静态文件
开发语言·青少年编程·编程与数学·goweb
Java Fans3 小时前
C# 中串口读取问题及解决方案
开发语言·c#
盛派网络小助手3 小时前
微信 SDK 更新 Sample,NCF 文档和模板更新,更多更新日志,欢迎解锁
开发语言·人工智能·后端·架构·c#
算法小白(真小白)3 小时前
低代码软件搭建自学第二天——构建拖拽功能
python·低代码·pyqt