Python学习从0到1 day9 Python函数

news2024/10/2 8:51:11

苦难是花开的伏笔

            ——24.1.25

函数

1.定义

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

2.案例

在pycharm中完成一个案例需求:不使用内置函数len(),完成字符串长度的计算

#统计字符串的长度,不使用内置函数len()
str = input("请您输入字符串\n")
length = 0
for i in str:
    length += 1
print(f"字符串的长度是{length}")

通过定义一个函数改进:

#统计字符串的长度,不使用内置函数len()
str = input("请您输入字符串\n")
length = 0
for i in str:
    length += 1
print(f"字符串{str}的长度是{length}")

#可以使用函数,定义这个过程
def my_len(data):
    count = 0
    for i in data:
        count += 1
    print(f"字符串{data}的长度为{count}")

my_len("我一直相信")

3.学习、使用函数的意义

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

二、函数的基础定义语法

1.函数的定义

def 函数名(传入参数):

        函数体

        return 返回值

2.函数的调用

函数名(参数)

3.注意事项

①参数如果不需要,可以省略

②返回值不需要,也可以省略

③函数值必须先定义,后使用

4.练习案例:自动查核酸

定义一个函数,函数名任意,要求调用函数后可以输出如下欢迎语:

欢迎您的光顾!

请出示您的健康码以及72小时的核酸证明!

def invite():
    print("欢迎您的光临!")
    print("请出示您的健康码以及72小时核酸证明!")

invite()

三、函数的参数

1.函数的传入参数

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

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

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

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

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

传入参数的数量是不受限制的。

        可以不适应参数

        也可以仅使用任意N个参数

def add(a,b):
    result = a + b
    print(f"{a} + {b}的结果是:{result}")

add("我一直相信,","一切都会好的")
add(99,11)

2.函数的参数个数没有限制

def add(a,b,c):
    result = a + b + c
    print(f"{a} + {b} + {c}的结果是:\n{result}")

add("我一直相信,","一切都会好的","万事胜意")
add(99,11,4)

3.总结

①函数的传入参数的作用是?

        在函数运行的时候,接受外部传入的数据

②使用方式

        def add(x,y):

                result = x + y

                print(f"{x}+{y}的结果是:{result}"}

③注意事项

        函数定义中的参数,称之为形式参数

        函数调用中的参数,称之为实际参数

        函数的参数数量不限,使用逗号分隔开

        传入参数的时候,要和形式参数一一对应,逗号隔开

4.练习案例:升级版自动查核酸

定义一个函数,名称任意,并接受一个参数传入(数字类型,表示体温),在函数内进行体温判断(正常范围:<=37.5度),并输出如下内容:

        欢迎来到黑马程序员!请出示您的健康码以及72小时核酸证明,并配合测量体温!

        体温测量中,您的体温是:37.3度,体温正常请进!

        欢迎来到黑马程序员!请出示您的健康码以及72小时核酸证明,并配合测量体温!

        体温测量中,您的体温是:39.3度,需要隔离!

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

temp = float(input("请您输入您测量的体温\n"))
Judge(temp)

四、函数的返回值

1.函数返回值的定义

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

def add(a,b):
    result = a + b
    return result

r = add(89,28)
print(r)

2.函数返回值的语法

def 函数(参数...):

        函数体

        return 返回值

变量 = 函数(参数)

如上,变量就能接收到函数的返回值

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

return后面的语句不会被执行

3.总结

①什么是函数返回值?

        函数在执行完成后,返回到调用者的结果

②返回值的应用语法:

        使用关键字:return来返回结果

③注意:

        函数体遇到return后就结束了,所以写在return后的代码都不执行

4.None类型

当函数没有使用return语句返回数据,函数有返回值

Python中有一个特殊的字面量:None,其类型是:<class 'NoneType'>

无返回值的函数,实际上就是返回了None这个字面量

None表示:空的,无实际意义的意思

函数返回的None,表示这个函数没有返回什么有意义的内容,也就是返回了空的意思

def future():
    print("一切都会好的")
    return None
    

result = future()
print(f"无返回值函数,返回的内容是:{result},返回值的类型是{type(result)}")

5.None类型的应用场景

None作为一个特殊的字面量,用于表示:空、无意义、其有非常多的应用场景

①用在函数无返回值上

②用在if判断上

         在if判断中,None等同于False

        一般用于在函数中主动返回None,配合if判断做相关处理

③用于声明无内容的变量上

        定义变量,但暂时不需要变量有具体指,可以用None来代替

        暂不赋予变量具体值

        name = None

6.总结

1.什么是None

        None是类型‘NoneType’的字面量,用于表示:空的,无意义的

2.函数如何返回None

        不使用return语句即返回None

        主动return None

3.使用场景

        函数返回值

        if判断

        变量定义

7.函数文档说明

在函数内部添加,定义一个多行注释

"""

"""

会自动生成函数的文档注释

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

建议补齐说明文档

8.什么是函数的嵌套

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

def func_b():
    print("---2---")

def func_a():
    print("---1---")
    func_b()
    print("---3---")

func_a()

如果函数A中,调用了另外一个函数B,那么先把函数B中的任务全部都执行完毕之后才会回到上次,函数A执行的位置

五、函数中的变量

变量作用域指的是变量的作用范围(变量在哪里可用,在哪里不可用)

主要分为两类:局部变量和全局变量

1.局部变量

所谓局部变量是定义在函数体内部的变量,即只在函数体内部生效,除了函数,局部变量就无法使用了

2.全局变量

所谓全局变量,指的是在函数体内、外部都能生效的变量

3.global关键字

使用global关键字,可以在函数内部声明变量为全局变量

在函数内部:

        global num

在声明变量之前用global关键字进行修饰,将函数内部的变量定义为全局变量

六、函数的综合案例

综合案例:银行ATM机

①定义一个全局变量:money,用来记录银行卡余额(默认5000000)

②定义一个全局变量:name,用来记录客户姓名(启动程序时输入)

③定义如下的函数:

        查询余额函数

        存款函数

        取款函数

        主菜单函数

④需求:

        程序启动后要求输入客户姓名

        查询余额、存款、取款后都会返回主菜单

        存款、取款后、都会显示当前余额

        客户选择退出或输入错误,程序会退出,否则会一直运行

money = 5000000
name = input("请您输入客户姓名:\n")

def menu():
    print("************ 1.查询余额 ************")
    print("************ 2.存款     ************")
    print("************ 3.取款     ************")
    print("************ 4.退出系统  ************")

def Find():
    print(f"{name},您好,您的余额为:{money}元")

def Insert(gold):
    print(f"您存款了金额为:{gold}")
    global money
    money += gold
    print(f"现在的余额为:{money}")

def Delete(gold):
    print(f"您已取出了金额:{gold}")
    global money
    money -= gold
    print(f"现在的余额为:{money}")

menu()
while(True):
    Finger = int(input("请您选择你想要的操作:"))
    if (Finger == 1):
        Find()
    elif(Finger == 2):
        gold = int(input("请您输入您存款的金额"))
        Insert(gold)
    elif(Finger==3):
        gold = int(input("请您输入您取款的金额"))
        Delete(gold)
    else:
        print("您已退出系统")
        break




 

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

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

相关文章

海外云手机三大优势

在全球化潮流下&#xff0c;企业因业务需求对海外手机卡等设备的需求不断攀升&#xff0c;推动了海外云手机业务的蓬勃发展。相较于自行置备手机设备&#xff0c;海外云手机不仅能够降低成本&#xff0c;还具备诸多优势&#xff0c;让我们深入探讨其中的三大黄金优势。 经济实惠…

Vulnhub靶机:FunBox 9

一、介绍 运行环境&#xff1a;Virtualbox 攻击机&#xff1a;kali&#xff08;10.0.2.15&#xff09; 靶机&#xff1a;FunBox 9&#xff08;10.0.2.37&#xff09; 目标&#xff1a;获取靶机root权限和flag 靶机下载地址&#xff1a;https://www.vulnhub.com/entry/funb…

NGINX如何实现rtmp推流服务

最近直播大火&#xff0c;直播推流软件遍地开花&#xff0c;那么用NGINX如何进行推流呢&#xff1f;下面我们就简单的介绍一下用NGINX的rtmp模块如何实现视频推流&#xff0c;我们主要从一下几点介绍&#xff1a; 推流拉流推流认证拉流认证 package mainimport ("fmt&qu…

Elasticsearch基础篇(八):常用查询以及使用Java Api Client进行检索

ES常用查询以及使用Java Api Client进行检索 1. 检索需求 参照豆瓣阅读的列表页面 需求&#xff1a; 检索词需要在数据库中的题名、作者和摘要字段进行检索并进行高亮标红返回的检索结果需要根据综合、热度最高、最近更新、销量最高、好评最多进行排序分页数量为10&#xf…

vscode 代码格式化很短就换行,以及缩放设置

安装vetur 打开vscode设置settings.json { "editor.tabSize": 2,//缩进单位"vetur.format.defaultFormatter.html": "js-beautify-html","vetur.format.defaultFormatterOptions": {"js-beautify-html": {"wrap_line…

项目测试 手机系统 改串号 写IMEI 改MEID 改手机型号 等信息配置信息 演示视频 和一键新机

项目测试 手机系统 改串号 写IMEI 改MEID 改手机型号 等信息配置信息 演示视频 和配置说明 项目-手机系统支持直接改串号 IMEI MEID 手机型号 等信息配置信息 演示视频 支持 条形码 SN IMEI 1 IMEI 2 MEID 唯一SN 蓝牙地址 wifi地址 mac "一键新机"这个术语通常出现…

视频有点大能做二维码吗?视频转成二维码图片的方法

怎么把一个比较大的视频转二维码图片呢&#xff1f;现在很多人会以二维码为载体来存储视频文件&#xff0c;其他人只需要扫码生成二维码就可以观看视频。有的视频因为时间比较长&#xff0c;尺寸比较大&#xff0c;文件会比较大&#xff0c;那么几十几百m大小的视频如何快速制作…

不学前沿技术与朽木浮草何异 Java 10新特性

不学前沿技术与朽木浮草何异? Java 10新特性 ​ 发布于 2018 年 3 月 20 日&#xff0c;最知名的特性应该是 var 关键字&#xff08;局部变量类型推断&#xff09;的引入了&#xff0c;其他还有垃圾收集器改善、GC 改进、性能提升、线程管控等一批新特性。 概览&#xff08;…

Shell脚本------函数与数组

目录 一、函数 1、函数是什么&#xff1f; 2、函数的格式 3、函数的调用方法 ①脚本&#xff1a;查看当前操作系统 ②脚本二&#xff1a;函数备份yum线上源&#xff0c;创建yum本地源和清理缓存安装httpd 4、函数的返回值 5、函数传参 6、函数变量的作用范围 1、实例…

2024年【安全员-B证】考试技巧及安全员-B证操作证考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 安全员-B证考试技巧参考答案及安全员-B证考试试题解析是安全生产模拟考试一点通题库老师及安全员-B证操作证已考过的学员汇总&#xff0c;相对有效帮助安全员-B证操作证考试学员顺利通过考试。 1、【多选题】《建筑施…

Rocky8 顺利安装 Airflow 并解决数据库报错问题

rocky是替代centos的服务器系统&#xff0c;稳定可靠。rocky8会比centos7新&#xff0c;可以支持更多服务软件的安装&#xff0c;免去升级各种库的麻烦&#xff0c;本文运行airflow服务就用rocky8系统。airflow是一个定时任务管理系统&#xff0c;功能强大&#xff0c;目前是ap…

机器学习算法(二)

一、朴素贝叶斯 朴素贝叶斯&#xff08;Naive Bayes&#xff09;是基于贝叶斯定理。它测量每个类的概率&#xff0c;每个类的条件概率给出 x 的值。这个算法用于分类问题&#xff0c;得到一个二进制“是 / 非”的结果。看看下面的方程式。 先验概率&#xff1a;即基于统计的概…

python基础学习-03 安装

python3 可应用于多平台包括 Windows、Linux 和 Mac OS X。 Unix (Solaris, Linux, FreeBSD, AIX, HP/UX, SunOS, IRIX, 等等。)Win 9x/NT/2000Macintosh (Intel, PPC, 68K)OS/2DOS (多个DOS版本)PalmOSNokia 移动手机Windows CEAcorn/RISC OSBeOSAmigaVMS/OpenVMSQNXVxWorksP…

万物简单AIoT 端云一体实战案例学习 之 空气质量检测系统

学物联网,来万物简单IoT物联网!! 下图是本案的3步导学,每个步骤中实现的功能请参考图中的说明。 1、简介 环境污染、空气污染是人类一直所关心并且讨论的永恒话题,人们对优质的环境和健康的身体非常向往。因此,如果有一种可以检测周围环境的空气质量的设备并且环境数据…

各个阶段直播流程和运营重点

塑型期直播流程与运营重点 成长期直播流程与运营重点 成熟期直播流程与运营重点 小结

每个开发人员都应该知道的6个Nodejs库

Node.js被视为许多Web开发人员的理想运行时环境。它是世界上最流行的编程语言之一&#xff0c;Node.js提供了通过JavaScript库重用代码的能力&#xff0c;但是在项目中选择合适的库可能很困难。 有用的库可以缩短开发时间&#xff0c;并为您的Web应用程序提供几个优点&#xf…

Unity学习之坦克游戏制作(2)游戏场景的制作

文章目录 1. 基础场景的搭建2. 游戏主面板2.1 拼出面板2.2 创建新面板2.3 设置面板复用2.4 退出界面 3. 坦克基类3.1 创建基类脚本3.1.1 基类基本属性3.1.2 抽象开火函数3.1.3 受伤虚函数3.1.4 死亡虚函数 4 玩家——基础移动旋转摄像机跟随4.1 玩家对象脚本4.2 控制坦克移动4.…

22.Lambda 表达式

Lambda 表达式 1. 概况2. 函数式接口3. 格式3.1 完整格式3.2 省略格式 4. 代码示例5. 输出结果6. 注意事项 学习Lambda表达式之前最好先学会 匿名内部类 1. 概况 Lambda 表达式是一种在编程中用来表示匿名函数的简洁语法。它是基于函数式编程风格的一种特性&#xff0c;最初在…

2024.1.26每日一题

LeetCode 边权重均等查询 2846. 边权重均等查询 - 力扣&#xff08;LeetCode&#xff09; 题目描述 现有一棵由 n 个节点组成的无向树&#xff0c;节点按从 0 到 n - 1 编号。给你一个整数 n 和一个长度为 n - 1 的二维整数数组 edges &#xff0c;其中 edges[i] [ui, vi,…

微信小程序(十六)slot插槽

注释很详细&#xff0c;直接上代码 上一篇 温馨提醒&#xff1a;此篇需要自定义组件的基础&#xff0c;如果不清楚请先看上一篇 新增内容&#xff1a; 1.单个插槽 2.多个插槽 单个插糟 源码&#xff1a; myNav.wxml <view class"navigationBar custom-class">…