当前位置: 首页 > 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退出循环

相关文章:

Python-第五天 Python函数

Python-第五天 Python函数一、函数介绍1. 什么事函数二、函数的定义1.函数的定义&#xff1a;2.案例三、函数的参数1.函数的传入参数2.案例升级四、函数的返回值1.什么是返回值2.返回值的语法3.None类型4.None类型的应用场景五、函数说明文档1.函数的说明文档2.在PyCharm中查看…...

【Python学习笔记】28.Python3 错误和异常

前言 作为 Python 初学者&#xff0c;在刚学习 Python 编程时&#xff0c;经常会看到一些报错信息&#xff0c;在前面我们没有提及&#xff0c;这章节我们会专门介绍。 Python3 错误和异常 Python 有两种错误很容易辨认&#xff1a;语法错误和异常。 Python assert&#xf…...

SQLServer 迁移到 MySQL 工具对比

我之所以会写这篇对比文章&#xff0c;是因为公司新产品研发真实经历过这个痛苦过程&#xff08;传统基于 SQL Server开发的C/S 产品转为 MySQL云产品&#xff09;。首次需要数据转换是测试环节&#xff0c;当时为了快速验证新研发云产品性能与结果准确性&#xff08;算法类&am…...

分析finebi5.x仪表板组件获取数据过程(数据是数据集或者sql的)

首先仪表板的公共连接类似:http://localhost:37799/webroot/decision/link/Bo6B 当我们访问这个连接时,会来到FineLinkAction的getShareReport方法。 public String getShareReport(HttpServletRequest req, HttpServletResponse res, @FinePathVariable("linkId"…...

设计模式--适配器模式 Adapter Pattern

设计模式--适配器模式 Adapter Pattern适配器模式 Adapter Pattern1.1 基本介绍1.2 工作原理类适配器模式对象适配器模式接口适配器模式小结适配器模式 Adapter Pattern 1.1 基本介绍 &#xff08;1&#xff09;适配器模式将某个类的接口转换成为客户端期望的另一个接口表示&…...

PVE虚拟机篇-rest api

rest api官方介绍 Proxmox VE API rest api文档 rest api文档 rest api token 调用pve rest api ,有两种认证方式 Ticket Cookie Ticket Cookie的方式是最为推荐的&#xff0c;获取的方式为&#xff0c;通过post请求&#xff0c;发送用户名和密码到pve的server端获取tok…...

2022-2025学年面向中小学生的白名单全国性竞赛活动清单及官网地址链接

**资料来源:爬虫爬取。** 教育部办公厅 工业和信息化部办公厅关于公布 首批特色化示范性软件学院名单的通知 教育部办公厅 工业和信息化部办公厅关于公布首批特色化示范性软件学院名单的通知 - 中华人民共和国教育部政府门户网站 教育部办公厅关于2022-2025学年面向中小学生…...

Python 高级编程之生成器与协程进阶(五)

文章目录一、概述二、生成器1&#xff09;生成器和迭代器的区别2&#xff09;生成器创建方式1、通过生成器函数创建2、通过生成器表达式创建3&#xff09;生成器表达式4&#xff09;yield关键字5&#xff09;生成器函数6&#xff09;return 和 yield 异同7&#xff09;yield的使…...

Django框架之视图和URL

视图和URL 站点管理页面做好了, 接下来就要做公共访问的页面了.对于Django的设计框架MVT. 用户在URL中请求的是视图.视图接收请求后进行处理.并将处理的结果返回给请求者.使用视图时需要进行两步操作 1.定义视图2.配置URLconf 1. 定义视图 视图就是一个Python函数&#xff0c…...

Python 的Tkinter包系列之七:好例子补充2

Python 的Tkinter包系列之七&#xff1a;好例子补充2 英汉字典&#xff08;使用文本文件记录英语单词和解释&#xff09;、简单的通信录&#xff08;使用SQLite数据库记录人员信息&#xff09; 一、tkinter编写英汉字典 先看效果图&#xff1a; 词典文件是一个文本文件&…...

每日一练-等差数列

等差数列&#x1f340;题目描述&#x1f33f;解题思路&#x1f338;Python源码&#x1f4e7;Summary&#x1f4c6;Date: 2023年2月10日 &#x1f3ac;Author: 小 y 同 学 &#x1f4c3;Classify: 蓝桥杯每日一练 &#x1f516;Language: Python &#x1f340;题目描述 题意   …...

使用动态参数构建CUDA图

文章目录使用动态参数构建CUDA图使用显式 API 调用构建 CUDA 图使用流捕获构建 CUDA 图组合方法执行结果总结使用动态参数构建CUDA图 自从在 CUDA 10 以来&#xff0c;CUDA Graphs 已被用于各种应用程序。 上图将一组 CUDA 内核和其他 CUDA 操作组合在一起&#xff0c;并使用指…...

在Fortran中调用Python教程

前言Python是机器学习领域不断增长的通用语言。拥有一些非常棒的工具包&#xff0c;比如scikit-learn&#xff0c;tensorflow和pytorch。气候模式通常是使用Fortran实现的。那么我们应该将基于Python的机器学习迁移到Fortran模型中吗&#xff1f;数据科学领域可能会利用HTTP AP…...

04-PS人像磨皮方法

1.高斯模糊磨皮 这种方法的原理就是建立一个将原图高斯模糊后图层, 然后用蒙版加画笔或者历史画笔工具将需要磨皮的地方涂抹出来, 通过图层透明度, 画笔流量等参数来控制磨皮程度 1.新建图层(命名为了高斯模糊磨皮), 混合模式设置为正常, 然后选择高斯模糊, 模糊数值设置到看…...

nginx反向代理+负载均衡上传webshell重难点+apache漏洞

nginx反向代理 nginx 负载均衡 负载均衡的策略 1、轮询&#xff1a;nginx默认就是轮询其权重都默认为1&#xff0c;服务器处理请求的顺序&#xff1a;ABABABABAB… upstream mysvr { server 192.168.137.131; server 192.168.137.136; }2、weight&#xff1a;跟据配置…...

transition组件的使用

<template><button click"flag !flag">切换</button><transition name"fade"><div v-if"flag" class"box"></div></transition> </template><script setup lang"ts"&g…...

多行文本在块元素中垂直居中

单行文本垂直居中对齐 在块元素中&#xff0c;让单行文本居中&#xff0c;可以使用line-height等于块元素的高&#xff0c;即可让该单行文本垂直居中对齐。 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><me…...

在 WebAssembly 中使用 C/C++ 和 libbpf 编写 eBPF 程序

作者&#xff1a;于桐&#xff0c;郑昱笙 eBPF&#xff08;extended Berkeley Packet Filter&#xff09;是一种高性能的内核虚拟机&#xff0c;可以运行在内核空间中&#xff0c;用来收集系统和网络信息。随着计算机技术的不断发展&#xff0c;eBPF 的功能日益强大&#xff0c…...

leveldb源码解析六——compact

compact分为manual_compaction、minor_compaction、major_compaction&#xff0c;统一由MaybeScheduleCompaction触发&#xff1a; void DBImpl::MaybeScheduleCompaction() {mutex_.AssertHeld();if (background_compaction_scheduled_) {// Already scheduled} else if (shu…...

数据结构(二):单向链表、双向链表

数据结构&#xff08;二&#xff09;一、什么是链表1.数组的缺点2.链表的优点3.链表的缺点4.链表和数组的区别二、封装单向链表1. append方法&#xff1a;向尾部插入节点2. toString方法&#xff1a;链表元素转字符串3. insert方法&#xff1a;在任意位置插入数据4.get获取某个…...

别再羡慕ECharts了!用PyQt+Matplotlib打造你的专属交互式图表工具(附完整代码)

用PyQtMatplotlib打造媲美ECharts的交互式数据可视化工具 在数据分析领域&#xff0c;Web端的ECharts以其丰富的交互功能广受好评&#xff0c;但当我们开发桌面应用或需要高性能处理大数据时&#xff0c;Python技术栈的开发者常常面临两难选择。Matplotlib虽然性能优异&#xf…...

新手福音:用快马平台生成Anaconda环境下的Python数据分析示例代码

作为一名刚接触Python数据分析的新手&#xff0c;我最近在学习Anaconda环境下的数据处理和可视化。刚开始配置环境和写代码时&#xff0c;经常被各种报错搞得手忙脚乱。后来发现了InsCode(快马)平台&#xff0c;它帮我快速生成了一个完整的示例项目&#xff0c;让我对数据分析流…...

基于ChatGPT的文字冒险游戏开发实战:从对话引擎到状态管理

背景痛点&#xff1a;当传统文字游戏遇上AI叙事革命 文字冒险游戏&#xff08;Interactive Fiction, IF&#xff09;有着悠久的历史&#xff0c;从早期的《巨洞冒险》到后来的《80天》&#xff0c;其核心魅力在于通过文字构建一个充满想象力的世界&#xff0c;让玩家通过输入指…...

自然滚动的终结:Scroll Reverser如何重构输入设备交互逻辑

自然滚动的终结&#xff1a;Scroll Reverser如何重构输入设备交互逻辑 【免费下载链接】Scroll-Reverser Per-device scrolling prefs on macOS. 项目地址: https://gitcode.com/gh_mirrors/sc/Scroll-Reverser 在追求无缝人机交互的今天&#xff0c;macOS系统中输入设备…...

如何快速配置HomeAssistant格力空调本地控制组件:完整操作指南

如何快速配置HomeAssistant格力空调本地控制组件&#xff1a;完整操作指南 【免费下载链接】HomeAssistant-GreeClimateComponent Custom Gree climate component written in Python3 for Home Assistant. Controls ACs supporting the Gree protocol. 项目地址: https://git…...

2026电商客服外包TOP5实力品牌详细解读

进入2026年&#xff0c;电商行业已从粗放式扩张转向精细化运营时代&#xff0c;客户服务不再局限于简单的问答回复&#xff0c;而是成为驱动店铺销售增长、积累品牌声誉的关键要素。根据最新行业研究报告&#xff0c;专业的外包客服团队能够帮助店铺将询单转化率提高20%-30%&am…...

5款部署方案的开源UML工具:开发者与设计师的高效协作绘图平台

5款部署方案的开源UML工具&#xff1a;开发者与设计师的高效协作绘图平台 【免费下载链接】umlet Free UML Tool for Fast UML Diagrams 项目地址: https://gitcode.com/gh_mirrors/um/umlet 开源UML工具UMLet是一款专为高效绘图设计的跨平台解决方案&#xff0c;它通过…...

自动驾驶之心实习生招募|上海线下,一起做点真东西

点击下方卡片&#xff0c;关注“自动驾驶之心”公众号 戳我-> 领取自动驾驶近30个方向学习路线 自动驾驶之心是业内头部的垂类自媒体平台&#xff0c;过去一年&#xff0c;我们梳理了端到端、VLA、世界模型、强化学习等前沿方向的最新进展&#xff0c;也分享了行业概况、融资…...

HunyuanVideo-Foley企业应用:汽车HMI人机交互音效AI生成平台

HunyuanVideo-Foley企业应用&#xff1a;汽车HMI人机交互音效AI生成平台 1. 产品概述 HunyuanVideo-Foley是一款专为企业级音视频生成需求设计的AI平台&#xff0c;特别针对汽车HMI&#xff08;人机交互界面&#xff09;音效场景进行了深度优化。该平台基于RTX 4090D 24GB显存…...

RabbitMQ 3.13.2安装踩坑实录:如何绕过rabbitmq-service.bat install code 1错误

RabbitMQ 3.13.2安装实战&#xff1a;深度解析服务注册失败与系统级解决方案 当你在Windows系统上部署RabbitMQ 3.13.2时&#xff0c;那个刺眼的rabbitmq-service.bat install exited with code 1错误就像一堵突然出现的墙。这不仅仅是简单的安装失败&#xff0c;而是系统权限、…...