当前位置: 首页 > news >正文

Python-第五天 Python函数

Python-第五天 Python函数

  • 一、函数介绍
    • 1. 什么事函数
  • 二、函数的定义
    • 1.函数的定义:
    • 2.案例
  • 三、函数的参数
    • 1.函数的传入参数
    • 2.案例升级
  • 四、函数的返回值
    • 1.什么是返回值
    • 2.返回值的语法
    • 3.None类型
    • 4.None类型的应用场景
  • 五、函数说明文档
    • 1.函数的说明文档
    • 2.在PyCharm中查看函数说明文档
  • 六、函数的嵌套调用
    • 1.什么是函数的嵌套
  • 七、变量的作用域
    • 1.局部变量
    • 2.全局变量
    • 3.global关键字
  • 八、综合案例

一、函数介绍

1. 什么事函数

函数:是组织好的,可重复使用的,用来实现特定功能代码段

我们使用过的:input()、print()、str()、int()等都是Python的内置函数

使用函数的目的:为了得到一个针对特定需求、可供重复利用的代码段提高程序的复用性,减少重复性代码,提高开发效率

二、函数的定义

1.函数的定义:

def 函数名(传入参数):函数体return 返回值

函数的调用

函数名(参数)

注意
① 参数如不需要,可以省略(后续章节讲解)
② 返回值如不需要,可以省略(后续章节讲解)
③ 函数必须先定义后使用

2.案例

练习案例:自动查核酸
定义一个函数,函数名任意,要求调用函数后可以输出如下欢迎语:
欢迎来到黑马程序员!
请出示您的健康码及72小时核酸证明!

def check():print('欢迎来到黑马程序员!\n请出示您的健康码及72小时核酸证明!')check()

在这里插入图片描述

三、函数的参数

1.函数的传入参数

传入参数的功能是:在函数进行计算的时候,接受外部(调用时)提供的数据。

函数的传入参数 - 传参定义

#定义函数
def add(x,y):result = x +yprint(f'{x} + {y} 的结果是: {x+y}')#调用函数
add(5,6)
  • 实现了,每次计算的是x + y

  • x + y的值,可以在调用函数的时候指定。

  • 函数定义中,提供的x和y,称之为:形式参数(形参),表示函数声明将要使用2个参数

  • 参数之间使用逗号进行分隔

  • 函数调用中,提供的5和6,称之为:实际参数(实参),表示函数执行时真正使用的参数值

  • 传入的时候,按照顺序传入数据,使用逗号分隔

2.案例升级

练习案例:升级版自动查核酸
定义一个函数,名称任意,并接受一个参数传入(数字类型,表示体温)
在函数内进行体温判断(正常范围:小于等于37.5度),并输出如下内容:

在这里插入图片描述

def check(t):print('欢迎来到黑马程序员! 请出示您的健康码以及72小时核酸证明,并配合测体温!')if t <=37.5:print(f'体温测量中,您的体温是:{t}度,体温正常请进!')else:print(f'体温测量中,您的体温是:{t}度,需要隔离!')check(37.3)

四、函数的返回值

1.什么是返回值

所谓“返回值”,就是程序中函数完成事情后,最后给调用者的结果

2.返回值的语法

语法就是:通过return关键字,就能向调用者返回数据

在这里插入图片描述

3.None类型

Python中有一个特殊的字面量:None,其类型是:<class ‘NoneType’>
无返回值的函数,实际上就是返回了:None这个字面量
None表示:空的、无实际意义的意思
函数返回的None,就表示,这个函数没有返回什么有意义的内容。
也就是返回了空的意思。
在这里插入图片描述
在这里插入图片描述

4.None类型的应用场景

None作为一个特殊的字面量,用于表示:空、无意义,其有非常多的应用场景。
• 用在函数无返回值上
• 用在if判断上
• 在if判断中,None等同于False
• 一般用于在函数中主动返回None,配合if判断做相关处理
• 用于声明无内容的变量上
• 定义变量,但暂时不需要变量有具体值,可以用None来代替

在这里插入图片描述
在这里插入图片描述

五、函数说明文档

1.函数的说明文档

函数是纯代码语言,想要理解其含义,就需要一行行的去阅读理解代码,效率比较低。
我们可以给函数添加说明文档,辅助理解函数的作用。
语法如下:
通过多行注释的形式,对函数进行说明解释
• 内容应写在函数体之前

在这里插入图片描述

2.在PyCharm中查看函数说明文档

在PyCharm编写代码时,可以通过鼠标悬停,查看调用函数的说明文档

在这里插入图片描述

六、函数的嵌套调用

1.什么是函数的嵌套

所谓函数嵌套调用指的是一个函数里面又调用了另外一个函数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如果函数A中,调用了另外一个函数B,那么先把函数B中的任务都执行完毕之后才会回到上次 函数A执行的位置

七、变量的作用域

1.局部变量

变量作用域指的是变量的作用范围(变量在哪里可用,在哪里不可用)
主要分为两类:局部变量和全局变量
所谓局部变量是定义在函数体内部的变量,即只在函数体内部生效
变量a是定义在testA函数内部的变量,在函数外部访问则立即报错.
局部变量的作用:在函数体内部,临时保存数据,即当函数调用完成后,则销毁局部变量
在这里插入图片描述

2.全局变量

所谓全局变量,指的是在函数体内、外都能生效的变量
思考:如果有一个数据,在函数A和函数B中都要使用,该怎么办?
答:将这个数据存储在一个全局变量里面
在这里插入图片描述

3.global关键字

思考:testB函数需要修改变量num的值为200,如何修改程序?
testB函数内部的 num = 200 是定义了一个局部变量

在这里插入图片描述
☆ 使用 global关键字 可以在函数内部声明变量为全局变量, 如下所示

在这里插入图片描述

八、综合案例

在这里插入图片描述

• 定义一个全局变量:money,用来记录银行卡余额(默认5000000)
• 定义一个全局变量:name,用来记录客户姓名(启动程序时输入)
• 定义如下的函数:
• 查询余额函数
• 存款函数
• 取款函数
• 主菜单函数
• 要求:
• 程序启动后要求输入客户姓名
• 查询余额、存款、取款后都会返回主菜单
• 存款、取款后,都应显示一下当前余额
• 客户选择退出或输入错误,程序会退出,否则一直运行

"""
演示函数综合案例开发
"""# 定义全局变量money name
money = 5000000
name = None
# 要求客户输入姓名
name = input("请输入您的姓名:")
# 定义查询函数
def query(show_header):if show_header:print("-------------查询余额------------")print(f"{name},您好,您的余额剩余:{money}元")# 定义存款函数
def saving(num):global money    # money在函数内部定义为全局变量money += numprint("-------------存款------------")print(f"{name},您好,您存款{num}元成功。")# 调用query函数查询余额query(False)# 定义取款函数
def get_money(num):global moneymoney -= numprint("-------------取款------------")print(f"{name},您好,您取款{num}元成功。")# 调用query函数查询余额query(False)
# 定义主菜单函数
def main():print("-------------主菜单------------")print(f"{name},您好,欢迎来到黑马银行ATM。请选择操作:")print("查询余额\t[输入1]")print("存款\t\t[输入2]")print("取款\t\t[输入3]")    # 通过\t制表符对齐输出print("退出\t\t[输入4]")return input("请输入您的选择:")# 设置无限循环,确保程序不退出
while True:keyboard_input = main()if keyboard_input == "1":query(True)continue    # 通过continue继续下一次循环,一进来就是回到了主菜单elif keyboard_input == "2":num = int(input("您想要存多少钱?请输入:"))saving(num)continueelif keyboard_input == "3":num = int(input("您想要取多少钱?请输入:"))get_money(num)continueelse:print("程序退出啦")break       # 通过break退出循环
http://www.lryc.cn/news/3495.html

相关文章:

  • 【Python学习笔记】28.Python3 错误和异常
  • SQLServer 迁移到 MySQL 工具对比
  • 分析finebi5.x仪表板组件获取数据过程(数据是数据集或者sql的)
  • 设计模式--适配器模式 Adapter Pattern
  • PVE虚拟机篇-rest api
  • 2022-2025学年面向中小学生的白名单全国性竞赛活动清单及官网地址链接
  • Python 高级编程之生成器与协程进阶(五)
  • Django框架之视图和URL
  • Python 的Tkinter包系列之七:好例子补充2
  • 每日一练-等差数列
  • 使用动态参数构建CUDA图
  • 在Fortran中调用Python教程
  • 04-PS人像磨皮方法
  • nginx反向代理+负载均衡上传webshell重难点+apache漏洞
  • transition组件的使用
  • 多行文本在块元素中垂直居中
  • 在 WebAssembly 中使用 C/C++ 和 libbpf 编写 eBPF 程序
  • leveldb源码解析六——compact
  • 数据结构(二):单向链表、双向链表
  • COCO物体检测评测方法简介
  • 记一次上环境获取资源失败的案例
  • 实战超详细MySQL8离线安装
  • 依赖倒置原则|SOLID as a rock
  • Webpack的知识要点
  • handler解析(2) -Handler源码解析
  • 【算法】kmp
  • git 常用命令之 git checkout
  • 一些常见错误
  • [单片机框架][调试功能] 回溯案发现场
  • MySQL主从同步-(二)搭建从机服务器