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
相关推荐
阿正的梦工坊3 小时前
JavaScript 微任务与宏任务完全指南
开发语言·javascript·ecmascript
2301_816660213 小时前
PHP怎么处理Eloquent Attribute Inference属性推断_Laravel从数据自动推导类型【操作】
jvm·数据库·python
第一程序员3 小时前
数据工程 pipelines 实践
python·github
知行合一。。。3 小时前
Python--05--面向对象(属性,方法)
android·开发语言·python
郝学胜-神的一滴4 小时前
深度学习必学:PyTorch 神经网络参数初始化全攻略(原理 + 代码 + 选择指南)
人工智能·pytorch·python·深度学习·神经网络·机器学习
青梅橘子皮4 小时前
C语言---指针的应用以及一些面试题
c语言·开发语言·算法
qq_372154234 小时前
Go 中自定义类型与基础类型的显式转换规则详解
jvm·数据库·python
浅时光_c4 小时前
3 shell脚本编程
linux·开发语言·bash
Evand J4 小时前
【三维轨迹目标定位,CKF+RTS,MATLAB程序】基于CKF与RTS平滑的三维非线性目标跟踪(距离+方位角+俯仰角)
开发语言·matlab·目标跟踪
LiAo_1996_Y5 小时前
CSS如何实现文字渐变效果_通过background-clip实现艺术字
jvm·数据库·python