Python函数学习

news/2025/1/16 1:36:09/

Python函数

  • 一.函数介绍
  • 二.函数的定义
  • 三.函数的参数
  • 四.函数的返回值
    • 1.函数返回值定义
    • 2.None类型
  • 五.函数说明文档
  • 六.函数的嵌套调用
  • 七.变量作用域
  • 八.综合案例

一.函数介绍

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

好处:

  • 将功能封装在函数内,可供随时随地重复利用
  • 提高代码的复用性,减少重复代码,提高开发效率

二.函数的定义

1.函数的定义语法
在这里插入图片描述
2.函数的使用步骤

  • 先定义函数
  • 再调用函数

3.注意事项

  • 参数不需要,可以省略
  • 返回值不需要,可以省略
    练习
# 定义函数
def check():print("调用函数")
# 调用函数
check()
# 输出
调用函数

三.函数的参数

1.函数的传入参数作用是什么
在函数运行的时候,接受外部传入的数据
2.使用方式
在这里插入图片描述
3.注意事项

  • 函数定义的参数,称之为形式参数
  • 函数调用的参数,称之为实际参数
  • 函数的参数数量不限,使用逗号分隔开
  • 传入参数的时候,要和形式参数一一对应,逗号隔开

练习

#定义函数
def  check(num):print("请测量体温")if num >= 37.5:print(f"您的体温是{num},需要隔离")else:print(f"您的体温是{num},可以进入")
#调用函数
check(37.6)
#输出
请测量体温
您的体温是37.6,需要隔离

四.函数的返回值

1.函数返回值定义

1.1什么是函数的返回值
函数在执行完成后,返回给调用者的结果

1.2返回值的应用语法
使用关键字,return返回结果
在这里插入图片描述
1.3注意
函数在遇到return后就结束了,所以写在return后的代码就不会被执行了。

练习

#定义函数
def add(x,y):result = x + yreturn resultr = add(1,2)
print(r)
#输出
11

2.None类型

思考:如果函数没有使用return语句返回数据,那么函数有返回值吗?
实际上是:有的。
Python中有一个特殊的字面量:None,其类型是:<class ‘NoneType’>
无返回值的函数,实际上就是返回了:None这个字面量
None表示:空的、无实际意义的意思
函数返回的None,就表示,这个函数没有返回什么有意义的内容。
也就是返回了空的意思。

1.什么是None
None是类型‘NonoType’的字面量,用于表示:空的,无意义的

2.函数如何返回None

  • 不使用return语句即返回None
  • 主动return None

3.使用场景

  • 函数返回值
  • if 判断
  • 变量定义

练习

# 定义函数
def say_hi():print("你好呀")return None
result = say_hi()
print(f"无返回值函数,返回内容是:{result}")
print(f"无返回值函数,返回内容类型是{type(result)}")
#输出
你好呀
无返回值函数,返回内容是:None
无返回值函数,返回内容类型是<class 'NoneType'>

五.函数说明文档

1.说明文档的作用是
对函数进行说明解释,帮助更好理解函数的功能

2.定义语法
在这里插入图片描述

  • param 用于解释参数
  • return 用于解释返回值

六.函数的嵌套调用

1.什么是函数调用
在一个函数中,调用另一个函数

2.执行流程
函数A中执行到调用函数B的语句,会将函数B全部执行完之后,继续执行函数A剩下的语句。

练习

# 定义函数func_b
def func_b():print("---2---")
# 定义函数func_a,内部调用func_b
def func_a():print("---1---")func_b()print("---3---")
# 调用函数
func_a()
#输出
---1---
---2---
---3---

七.变量作用域

1.什么是局部变量
作用范围在函数内部,函数外部无效

2.什么是全局变量
在函数内部外部都可以使用

3.如何将函数内定义的变量声明为全局变量
使用global关键字 global 变量

练习

###全局变量
num = 200   # 定义全局变量
def  test_a():print(f"test_a:{num}")
def  test_b():print(f"test_b:{num}")
test_a()
test_b()
print(num)
#输出
test_a:200
test_b:200
200###局部变量变为全局变量
num = 200
def  test_a():print(f"test_a:{num}")
def  test_b():global num  #声明局部变量变为全局变量num = 500print(f"test_b:{num}")
test_a()
test_b()
print(num)
#输出
test_a:200
test_b:500
500

八.综合案例

要求
在这里插入图片描述

在这里插入图片描述

# 定义全局变量
money = 5000000
name = input(f"请输入你的名字:")
# 定义查询函数
def query(show_header):if show_header:print("--------------查询余额--------------")print(f"{name},您好,您的余额剩余:{money}元")
# 定义存款函数
def saving(num):global moneymoney += numprint(f"{name},您好,您存款{num}元成功。")#调用query函数查询余额query(False)
# 定义取款函数
def get_money(num):global moneymoney -= numprint(f"{name},您好,您取款{num}元成功。")# 调用query函数查询余额query(False)
# 定义主菜单
def main():print("--------------主菜单--------------")print(f"{name},您好,欢迎来到黑马ATM。请选择操作: ")print("查询余额\t[输出1]")print("存款\t\t[输出2]") # 制表符对其输出print("取款\t\t[输出3]")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
##输出
请输入你的名字:tdm
--------------主菜单--------------
tdm,您好,欢迎来到黑马ATM。请选择操作: 
查询余额	[输出1]
存款		[输出2]
取款		[输出3]
退出		[输出4]
请输入你的选择:1
--------------查询余额--------------
tdm,您好,您的余额剩余:5000000--------------主菜单--------------
tdm,您好,欢迎来到黑马ATM。请选择操作: 
查询余额	[输出1]
存款		[输出2]
取款		[输出3]
退出		[输出4]
请输入你的选择:2
您想要存多少钱: 500000
tdm,您好,您存款500000元成功。
tdm,您好,您的余额剩余:5500000--------------主菜单--------------
tdm,您好,欢迎来到黑马ATM。请选择操作: 
查询余额	[输出1]
存款		[输出2]
取款		[输出3]
退出		[输出4]
请输入你的选择:3
您要取多少钱: 200000
tdm,您好,您取款200000元成功。
tdm,您好,您的余额剩余:5300000--------------主菜单--------------
tdm,您好,欢迎来到黑马ATM。请选择操作: 
查询余额	[输出1]
存款		[输出2]
取款		[输出3]
退出		[输出4]
请输入你的选择:4
输入错误

http://www.ppmy.cn/news/1189207.html

相关文章

测试实施运维必备知识点

Linux常用命令 ip addr 查看ip地址信息 ping 测试物理机是否联网 dhclient 让CentOS 7自动获取一个IP地址 vim 编辑纯文本文件 who 查看是否还有其他人在登录 find 在文件系统中搜索某文件 -name filename&#xff1a; 表示直接查找该文件名的文件 -type filetype&#xff1a;…

pyqt5进度条更新,多线程

pyqt5进度条更新&#xff0c;多线程 from PyQt5.QtCore import QThread, pyqtSignal, QTimer from PyQt5.QtWidgets import QApplication, QLabel, QVBoxLayout, QWidgetclass WorkerThread(QThread):progressUpdated pyqtSignal(int)def __init__(self, parentNone):super(W…

人工智能基础_机器学习011_梯度下降概念_梯度下降步骤_函数与导函数求解最优解---人工智能工作笔记0051

然后我们来看一下梯度下降,这里先看一个叫 无约束最优化问题,,值得是从一个问题的所有可能的备选方案中选最优的方案, 我们的知道,我们的正态分布这里,正规的一个正态分布,还有我们的正规方程,他的这个x,是正规的,比如上面画的这个曲线,他的这个x,就是大于0的对吧,而现实生活…

android 同步 服务器 时间

要将 Android 设备与服务器同步时间&#xff0c;可以通过以下两种方式实现&#xff1a; NTP 协议同步时间 NTP&#xff08;Network Time Protocol&#xff09;是一种网络协议&#xff0c;用于同步计算机的时间。Android 设备可以使用 NTP 协议来同步服务器时间。 Android 应…

【PyQt学习篇 · ⑥】:QWidget - 事件

文章目录 事件消息显示和关闭事件移动事件调整大小事件鼠标事件进入和离开事件鼠标按下和释放事件鼠标双击事件鼠标按下移动事件 键盘事件焦点事件拖拽事件绘制事件改变事件右键菜单输入法 事件转发机制案例一案例二案例三 事件消息 显示和关闭事件 showEvent(QShowEvent)方法…

FlinkCDC系列:通过skipped.operations参数选择性处理新增、更新、删除数据

在flinkCDC源数据配置&#xff0c;通过debezium.skipped.operations参数控制&#xff0c;配置需要过滤的 oplog 操作。操作包括 c 表示插入&#xff0c;u 表示更新&#xff0c;d 表示删除。默认情况下&#xff0c;不跳过任何操作&#xff0c;以逗号分隔。配置多个操作&#xff…

无需频繁登录支付宝网站即可完成商家转账,实时到账,方便安全快捷

大家好&#xff0c;我是小悟 转账到支付宝账户是一种通过 API 完成单笔转账的功能&#xff0c;支付宝商家可以向其他支付宝账户进行单笔转账。 商家只需输入另一个正确的支付宝账号&#xff0c;即可将资金从本企业支付宝账户转账至另一个支付宝账户。 该产品适用行业较广&am…

【pdf密码】PDF没有密码,为什么不能编辑?

打开PDF文件的时候&#xff0c;没有提示带有密码&#xff0c;但是打开文件之后发现没有办法编辑PDF文件&#xff0c;这个是因为PDF文件设置了限制编辑&#xff0c;我们需要将限制取消才能够编辑文件。 那么&#xff0c;我们应该如何取消密码&#xff0c;编辑文件呢&#xff1f…