python_函数

news2024/11/28 12:32:40
一、函数介绍
组织好的,可重复使用的,用来实现特定功能的代码段
例如:len() 函数--Python内置函数
# 已组织好的、可重复使用,针对特定功能
def my_len(data):
    count = 0
    for i in data:
        count += 1
    print(f"字符串{data}的长度是{count}")
为了得到针对特定需求,可重复利用的代码段;提高程序的复用性,减少重复代码,提高开发效率
二、函数的定义
def 函数名(传入参数):
    函数体
    return 返回值
目前主要看以上三部分(注意引号和缩进)使用函数时要调用
函数名(参数
函数必须先定义再调用 
三、函数的传参
传入参数的功能是:在函数进行计算时,接收外部(调用时)提供的数据
# 传参函数 两数相加
def add(x,y):
    re = x + y
    print(f"{x}和{y}的和为{re}")
# 调用函数,传入要计算的两个数字
add(12333,23321)
输出:
12333和23321的和为35654
函数定义,提供的x和y,称之为形式参数(形参),表示函数声明要使用两个参数
  • 参数之间使用逗号分隔
函数调用,提供的12333,23321称之为实际参数(实参),表示函数执行时真正使用的参数值
  • 传入的时候,按照顺序传入数据,使用逗号分隔
函数-传入参数是不受限制的:
可以不适用参数
也可以是N个
但是调用时候的 实参和形参要一一对应
# 传参函数案例 定义一个函数,名称不限定,接受一个参数传入(数字类型,表示体温)
# 在函数内进行体温判断 判断值 37.3度
def check_t(data:float):
    print("欢迎来到游乐园,请出示您的的健康码以及72小时核酸证明,并配合测量体温!")
    if data <= 37.3:
        print(f"体温测量中,您的体温是{data},体温正常请进!")
    else :
        print(f"体温测量中,您的体温是{data},需要隔离!")
四、函数的返回值
1、什么是返回值:程序中函数执行完成后,返回给调用者的结果
定义语法:
如图,变量就能接收到函数的返回值
语法就是:通过return关键字,就能向调用者返回数据
# 定义一个函数 完成两数相加 并且通过返回值将相加的结果返回给调用者
def add(x,y):
  #  res =
    return x + y
    print("ffjj") # 不会执行--函数体遇到return关键字,表明函数在此结束了 return之后的内容不会执行
2、函数返回值---None类型
如果函数没有使用return语句返回数据,函数也是有返回值的
无返回值的函数,实际上是返回了:None这个字面量
Python中有一个特殊字面量:None,其类型就是:<class'NoneType'>
None的使用场景
1.结合if判断--None--False
2.用于声明无内容的变量 --定义变量,暂时不需要变量取值,可以用None代替
3.函数返回值
五、函数说明文档  --通过注释对函数进行解释说明
通过多行注释,给函数添加说明文档,一般写在函数体之前
def add(x,y):
    """
    说明函数作用:
      :param x:形参1
      :param y:形参2
      :return:两数相加的和
    """
    return x + y
调用函数时,鼠标悬停在函数名上会显示函数说明文档
六、函数的嵌套调用
一个函数里面调用了另一个函数
执行流程
函数A中执行到调用函数B的语句,会讲函数B全部执行完成后,继续执行函数A的剩余内容
# 函数嵌套
def fun1():
    print("--2--")

def fun2():
    print("--1--")
    # 嵌套调用fun1
    fun1()
    print("--3--")
# 调用fun2
fun2()
输出:
--1--
--2--
--3--
七、变量在函数中的作用域
1.局部变量:出了定义它的函数体就无法继续使用
2.全局变量:在函数体内,体外都可以生效的变量
3.global关键字
使用global关键字可以将函数内定义的变量声明为全局变量
语法: global 变量
八、函数综合案例
实现ATM功能
实现的效果:
代码如下
# 实现ATM
# 定义一个全局变量,记录银行卡余额
money = 5000000
# 定义一个全局变量,记录客户姓名(程序启动时输入)
name = input("请输入您的姓名:")
# 定义如下函数:
# 1、查询余额函数
def check_m(show_header):
    if show_header:
        print("----------------查询余额--------------")
    print(f"{name},您好,您的余额剩余:{money}元。\n")

# 2、定义存款函数
def save_m(num):
    global money # 将money在函数内部定义为全局变量,可修改值
    money += num
    print("----------------存款-----------------")
    print(f"{name},您好,您存款50000元成功")
    check_m(False)  # 调用查询函数来查询

# 3、定义取款函数
def get_m(num):
    global money
    money -= num
    print("----------------取款-----------------")
    print(f"{name},您好,您取款50000元成功")
    check_m(False)  # 调用查询函数来查询

# 4、主菜单函数:
def main_m():
    print("-----------------主菜单----------------")
    print(f"{name},您好,欢迎来到bearATM,请选择操作")
    print("查询余额\t[输入1]")
    print("存款\t\t[输入2]")
    print("取款\t\t[输入3]")
    print("退出\t\t[输入4]")
    return input("请输入您的选择:")

# 设置无限循环,确保程序不会退出
while True:
    key_bord=main_m()
    if key_bord == "1":
        check_m(True)
        continue # 确保查询余额、取款、存款后返回主菜单
    elif key_bord == "2":
        save_num = int(input("您想要存多少钱?请输入:"))
        save_m(save_num)
        continue
    elif key_bord == "3":
        get_num = int(input("您想要取多少钱?请输入:"))
        if get_num > money:
            print("余额不足!")
        else:
            get_m(get_num)
        continue
    else:
        print("程序退出啦!")
        break # 通过break跳出循环 退出

------------------------------------------------------------------------------------------------原创笔记,转载注明出处

---------------------------------------------------------------------------------------------------------------#springbear#

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/26810.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

WebRTC实现一个网页在线录制视频

电脑录制视频几乎不会用到&#xff0c;当有需要的时候就各种找软件找工具&#xff0c;并且都会找免费的。现在市场上肯定有很多符合需求&#xff0c;只是那么偶尔的情况下&#xff0c;而且使用场景不是那么多要求的情况下&#xff0c;一个网页在线直接录屏是不是非常nice。 很…

40Java Runtime类

目录 Runtime类 1.概述 2.常见方法 (1).getRuntime返回环境对象 (2).exit停止虚拟机 (3).availableProcessors返回线程数 (4). maxMemory返回获得最大内存 (5).totalMemory返回已经获得内存 (6).freeMemory返回剩余内存 (7).exec运行cmd命令 Runtime类 1.概述 ​ Run…

双亲委派模型机制

文章目录类加载器findClassloadClassJDK双亲委派的破坏第一次破坏第二次破坏tomcat热部署JDK9最新改动双亲委派机制是当类加载器需要加载某一个.class字节码文件时&#xff0c;则首先会把这个任务委托给他的上级类加载器&#xff0c;递归这个操作&#xff0c;如果上级没有加载该…

卷积神经网络<二>keras实现多分支输入VGG

VGG的模型图 VGG使用Keras实现 这里的代码借鉴了VGG实现Keras&#xff0c;但是这段代码不支持多通道&#xff0c;并且vgg函数的扩展性不好。下面修改一下&#xff0c;方便进行多分支图片输入的建立&#xff0c;以及更见方便的调参。 # from keras.models import from keras.l…

MyBatis介绍

MyBatis介绍 MyBatis 是一款优秀的持久层框架&#xff0c;它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息&#xff0c;将接口和 Java 的 POJOs(Plain Ordi…

PMP考试自学可以吗?(含PMP备考资料)

当然是可以的&#xff0c;只要解决了“报考的35学时”这个问题&#xff0c;就只剩怎么备考的问题了。 在一般情况下&#xff0c;建议备考一到三个月&#xff0c;别给自己太长或太短的备考时间&#xff0c;前者坚持不下来&#xff0c;后者备考时间太少&#xff0c;来不及备考充…

戴尔大步进军经典量子计算混合模型

​ &#xff08;图片来源&#xff1a;网络&#xff09; 戴尔正将量子计算机融入传统IT的基础架构中&#xff0c;并向新型加速计算机开放了数据中心。这家服务器制造商为传统服务器基础设施创建了一个蓝图&#xff0c;以满足量子系统的独特需求&#xff0c;量子系统速度要比经典…

基于物联网的汽车爆胎预警系统

本设计是基于物联网的汽车爆胎预警系统的设计与实现设计&#xff0c;主要实现以下功能&#xff1a; 1&#xff0c;主机用LCD1602显示温度、气压和距离&#xff1b; 2&#xff0c;主从机间通过ZigBee进行数据的传输&#xff1b; 3&#xff0c;从机检测轮胎气压&#xff0c;温度…

zbxtable

ubuntu install zbxtable 1.新建zbxtable文件夹&#xff0c;将三件套下载到本地存放 mkdir ~/zbxtable ZbxTable: https://dl.cactifans.com/zbxtable/zbxtable-2.1.0.tar.gz ZbxTable-Web: https://dl.cactifans.com/zbxtable/web.tar.gz MS-Agent: https://dl.cactifans.co…

MybatisMybatisPlusSpringboot之最全入门学习教程笔记

1 Mybatis概述 1.1 Mybatis概念 MyBatis 是一款优秀的持久层框架&#xff0c;用于简化 JDBC 开发, &#xff08;1&#xff09;持久层&#xff1a;负责将数据到保存到数据库的那一层代码。Mybatis就是对jdbc代码进行了封装。 JavaEE三层架构&#xff1a;表现层、业务层、持久层…

ftp协议主动模式与被动模式

FTP主动模式与被动模式 主动模式&#xff1a;客户端给服务端的21控制端口发命令说&#xff0c;我要下载什么什么&#xff0c;并且还会说我已经打开了自己的某个端口&#xff0c;你就从这里把东西给我吧&#xff0c;服务器知道后就会连接客户端已打开的那个数据端口把东西传给客…

SpringBoot配置https

1.Https配置 由于HTTPS具有良好的安全性&#xff0c;在开发中得到了越来越广泛的应用&#xff0c;像微信公众号、小程序等的开发都要使用HTTPS来完成。对于个人开发者而言&#xff0c;一个HTTPS 证书的价格还是有点贵&#xff0c;但是呢&#xff0c;国内的一些云服务器厂商提供…

android studio 项目生成apk的几个问题(备忘)

终于自己做的一个小东西要做完了&#xff0c;最后一步是生成apk&#xff0c;这之前遇到几个问题备忘一下。 1、安装完成后有两个图标&#xff0c;分别是两个activity&#xff0c;卸载一个&#xff0c;另一个也没了。 原因&#xff1a;我原来做一时候没有欢迎界面&#xff0c;…

总结数据结构常用树

树&#xff1a;只有一个根节点&#xff0c;有孩子结点&#xff0c;父节点 二叉树&#xff1a;每个节点最多有两个孩子结点。 二分搜索树&#xff1a;也叫二叉排序树&#xff0c;首先它是一颗二叉树&#xff0c;且左右孩子都存在时&#xff0c;左孩子都小于当前节点值&#xf…

计算机数制(进制转换,原码,反码,补码,真值)

目录 区分进制 带小数点的进制转化 进制转换练习 符号数的表示方法 区分&#xff1a; 考点&#xff1a;给你原码转换补码&#xff0c;补码最负的数的表示&#xff0c;0的表示 原码&#xff0c;反码&#xff0c;补码练习 区分进制 注意微机原理这门课用的是后缀的方式&#xff0…

小学生python游戏编程arcade----碰撞精灵消失问题

小学生python游戏编程arcade----碰撞精灵消失问题前言碰撞精灵消失问题1、多余的精灵不能及时消失1.1 问题1.2 失败代码1.3 记录备忘1.4 代码实现2、放置位置2.1 代码放在ondraw中可以2.2 在update中也可以2.3 碰撞中3、玩家子弹击中敌坦克后的爆炸效果3.1 爆炸类3.2 爆炸列表准…

2022年铁路行业研究报告

第一章 行业概况 铁路运输是主要的陆上交通运输方式之一&#xff0c;铁路是指在综合交通运输体系中&#xff0c;用于运行火车等交通工具行驶的轨道线路。铁路运输是主要的陆上交通运输方式之一&#xff0c;是通过机车牵引车辆组成列车在铁轨上运送客或货的一种运输方式。相比其…

AVL双旋转思路分析与图解

AVL树双旋转思路分析与图解 首先我们要知道什么情况之下我们是要进行双旋转? 当最小不平衡子树为LR型或者RL型的时候, 那么什么时候最小不平衡子树是RL型或者什么时候又是LR型的? 下面我们就先给出LR型, RL型, LL型, RR型最小不平衡子树的概念: LR型最小不平衡子树: 首先拿…

Linux 动静态库

目录 静态库和动态库 gcc规则使用动静态库的规则&#xff1a; 制作静态库 使用静态库 方法1. 方法2. 制作动态库 使用动态库 方法1&#xff1a; 方法2&#xff1a; 方法3&#xff1a; 方法4&#xff1a; 进程&#xff0c;静态库&#xff0c;动态库 静态库和动态库 …

传统瀑布模型和实际瀑布模型

传统瀑布模型&#xff1a; 瀑布模型是所有模型的基础框架 特点&#xff1a; 线性的开发流程&#xff0c;不能够应对需求的变化。 必须等前一阶段的工作完成后&#xff0c;才能开始后一阶段的工作 前一阶段的输出文档就是后一阶段的输入文档&#xff0c;因此只有前一阶段的输…