Python学习打卡:day05

news2025/6/26 20:41:41

day5

笔记来源于:黑马程序员python教程,8天python从入门到精通,学python看这套就够了

目录

  • day5
    • 38、函数的初体验
    • 39、函数的基础定义语法
      • 函数的定义
      • 注意事项
    • 40、函数的基础定义案例练习
    • 41、函数的传入参数
    • 42、函数的传入参数案例练习——升级版自动查验核酸
    • 43、函数的返回值定义语法
    • 44、函数返回值之None类型
    • 45、函数的说明文档
    • 46、函数的嵌套调用
    • 47、变量在函数中的作用域

38、函数的初体验

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

统计字符串的长度,不使用内置函数 len(),常规方法和函数两种方法对比:

常规方法:

# 需求,统计字符串的长度,不使用内置函数 len()
str1 = "itheima"
str2 = "itcast"
str3 = "python"

# 定义一个计数变量
count = 0
for i in str1:
    count += 1
print(f"字符串{str1}的长度是:{count}")

count = 0
for i in str2:
    count += 1
print(f"字符串{str2}的长度是:{count}")

count = 0
for i in str3:
    count += 1
print(f"字符串{str3}的长度是:{count}")

使用函数:

# 可以使用函数,来优化过程
def my_len(data):
    count = 0
    for i in data:
        count += 1
    print(f"字符串{data}的长度是{count}")

my_len(str1)
my_len(str2)
my_len(str3)

使用函数的好处是:

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

39、函数的基础定义语法

函数的定义

基本语法格式:
在这里插入图片描述### 函数的调用

调用格式:

函数名(参数)

注意事项

  1. 参数如不需要,可以省略(后续章节讲解)
  2. 返回值如不需要,可以省略(后续章节讲解)
  3. 函数必须先定义后使用

示例:

"""
演示函数的定义语法
"""

# 定义一个函数,输出相关信息
def say_hi():
    print("Hi, hello world")

# 调用函数,让定义的函数开始工作
say_hi()

40、函数的基础定义案例练习

在这里插入图片描述

示例:

def welcome():
    print("欢迎来到黑马程序员!")
    print("请出示你的核酸码")

welcome()

41、函数的传入参数

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

基于函数的定义语法:
在这里插入图片描述

示例:

"""
演示函数使用参数
"""

# 定义 2 数向家的函数,通过参数接收被计算的 2 个数字
def add(x, y):
    result = x + y
    print(f"{x} + {y}的计算结果是:{result}")
    
# 调用函数,传入被计算的 2 个数字
add(5, 6)

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

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

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

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

42、函数的传入参数案例练习——升级版自动查验核酸

def check(temper):
    if temper <= 37.5:
        print(f"温度为{temper},请进.")
    else:
        print(f"温度为{temper},请隔离.")

check(33.6)

43、函数的返回值定义语法

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

基本语法格式如下:
在这里插入图片描述

示例:

"""
演示:定义函数返回值的语法格式
"""

# 定义一个函数,完成 2 数相加功能
def add(a, b):
    result = a + b
    # 通过返回值,将相加的结果返回给调用者
    return result

# 函数的返回值,可以通过变量去接收
r = add(5, 6)
print(r)

tips:

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

44、函数返回值之None类型

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

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

None 表示:空的、无实际意义的意思;函数返回的 None,就表示这个函数没有返回什么有意义的内容;也就是返回了空的意思。

None类型的应用场景

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

  1. 用在函数无返回值上

  2. 用在 if 判断上

    • 在 if 判断中,None等同于False;
    • 一般用于在函数中主动返回 None,配合 if 判断做相关处理。
  3. 用于声明无内容的变量上

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

示例:

"""
演示特殊字面量:None
"""

# 无 return 语句的函数返回值
def say_hi():
    print("你好呀")

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

# 主动返回 None 的函数
def say_hi2():
    print("你好呀")

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

# None 用于 if 判断
def check_age(age):
    if age > 18:
        return "SUCCESS"
    else:
        return None

result = check_age(16)
if not result:
    # 进入 if 表示 result 是 None 值,也就是 False
    print("未成年,不可进入")

# None 用于声明无初始内容的变量
name = None

45、函数的说明文档

函数是纯代码语言,想要理解其含义,就需要一行行的去阅读理解代码,效率比较低。

我们可以给函数添加说明文档,辅助理解函数的作用。

语法如下:

def add(x, y):
    """
    add 函数可以接受 2 个参数,进行 2 数相加的功能
    :param x: 相加的数字 1
    :param y: 相加的数字 2
    :return: 返回相加的结果
    """
    result = x + y
    print(f"2 数相加的结果是:{result}")
    return result

tips:pycharm 软件输入"""""",在第三个双引号后面回车,会自动补全参数注释格式。

在PyCharm编写代码时,可以通过鼠标悬停,查看调用函数的说明文档。
在这里插入图片描述

46、函数的嵌套调用

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

示例:

"""
演示嵌套调用函数
"""

# 定义函数 func_b
def func_b():
    print("---2---")

# 定义函数 func_a,并在内部调用 func_b
def func_a():
    print("---1---")

    # 嵌套调用 func_b
    func_b()

    print("---3---")

# 调用函数 func_a
func_a()

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

47、变量在函数中的作用域

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

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

1、所谓局部变量是定义在函数体内部的变量,即只在函数体内部生效

# 演示局部变量
def Test_a():
    num = 100
    print(num)

Test_a()
# error: print(num)
# NameError: name 'num' is not defined
print(num)

变量a是定义在testA函数内部的变量,在函数外部访问则立即报错。

局部变量的作用:在函数体内部,临时保存数据,即当函数调用完成后,则销毁局部变量。

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

# 演示全局变量
num = 200
def Test_a():
    print(f"test_a:{num}")

def Test_b():
    print(f"Test_b:{num}")

Test_a()
Test_b()
print(num)

3、函数体内修改局部变量,函数外却不能更新该变量

# 在函数内修改全局变量
num = 200
def Test_a():
    print(f"test_a:{num}")

def Test_b():
    num = 500     # 局部变量
    print(f"Test_b:{num}")

Test_a()
Test_b()
print(num)

4、使用 global关键字 可以在函数内部声明变量为全局变量, 如下所示:

示例:

# global关键字,在函数内声明变量为全局变量
num = 200
def Test_a():
    print(f"test_a:{num}")

def Test_b():
    global num      # 设置内部定义的变量为全局变量
    num = 500       # 局部变量
    print(f"Test_b:{num}")

Test_a()
Test_b()
print(num)

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

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

相关文章

【智能家居控制系统项目】一、项目系统镜像烧录与系统登录

前言 完成本章节将可以获得本项目的系统UI界面功能。本章节主要介绍如何烧录项目系统镜像以及进入系统。配套的视频介绍可以点击跳转到智能家居项目复刻配套视频 1.系统功能页面介绍 完成本章全部步骤&#xff0c;我们将可使用以下项目系统功能界面。 1.1 家居总览界面 主界面…

2分钟用手机开发一个ChatBot

前言&#xff1a; 在上一期&#xff0c;我们测评了CodeFlying&#xff0c;用它开发出了一个复杂推文管理系统&#xff0c;然后体验了一下它的热门应用&#xff1a;AI智能机器人。今天咱就继续用CodeFlying来开发一个属于我们自己的聊天机器人。 老规矩&#xff0c;我们先在手机…

【elementui源码解析】如何实现自动渲染md文档-第一篇

文章目录 目录 背景 获取源码 代码分析 背景 之前基于vant3的源码开发过二次开发过组件&#xff0c;其中vant实现了将md文档渲染到界面上&#xff0c;有天突发奇想想知道这是如何实现的将md文档渲染到界面上的&#xff0c;因为平时开发中使用elementui占多数&#xff0c;所…

并发、多线程、HTTP连接数有何关系?

在计算机领域&#xff0c;"并发"、"多线程"和"HTTP连接数"是三个重要的概念&#xff0c;它们之间存在着密切的关系。本文将探讨这三者之间的联系以及它们在现代计算机系统中的作用。 一、并发的概念 并发是指系统能够同时处理多个任务或事件的能…

thinkphp6 入门(23)--如何给上传图片的服务器目录授权

开发网站&#xff0c;上传图像时提示”上传图片失败&#xff0c;Impossible to create the root directory /var/www/html/xxxxx/public/uploads/avatar/20240608.“ 在Ubuntu上&#xff0c;你可以通过调整文件夹权限来解决这个问题。首先&#xff0c;确保Web服务器&#xff08…

填报志愿选大学专业,文科生如何选专业?

读文科的同学接触的专业知识相对广泛&#xff0c;往往被认为是“万金油”&#xff0c;他们仿佛什么都能做&#xff0c;但是和专业技能类知识不同&#xff0c;缺乏技术支持&#xff0c;从而使得文科专业的就业方向和前景远远比不上理科专业那么明朗&#xff0c;对于众多文科生而…

带头+双向+循环链表的实现

目录 1. 链表1.1 带头双向循环链表 2. 链表的实现2.1 结构体2.2 初始化2.3 打印2.4 判断空不能删2.5 尾插2.6 头插2.7 尾删2.8 头删2.9 查找2.10 在pos之前插入2.11 删除pos位置的值2. 12 销毁2.13 创建节点 3. test主函数4. List.c文件5. List.h文件 1. 链表 1.1 带头双向循环…

基于机器学习的CFD模型降阶

降阶模型 ROM 降阶模型ROM&#xff08;Reduced Order Models&#xff09;是一种对高保真度静态或动态模型的简化方法。模型降阶在保留了模型的基本特性与主导效应的同时&#xff0c;大大减少复杂模型的CPU计算时间及存储空间。 ROM的用途&#xff1a; 加速大规模系统的仿真速度…

每日一练:攻防世界:2-1

攻防世界&#xff1a;2-1 拿到一个打不开的图片&#xff0c;放到winhex里面&#xff0c;很直观的看到文件头损坏 修改以后还是打不开&#xff0c;继续往下分析 0000 000d说明IHDR头块长为13 4948 4452IHDR标识&#xff08;ascii码为IHDR&#xff09; 下面是IHDR数据块的实际…

【MySQL】事务的特性和隔离级别

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; 给大家跳段街舞感谢支持&#xff01;ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ …

报名进行中 | ISCSLP2024 对话语音克隆挑战赛(CoVoC)

晴数智慧(Magic Data)联合西北工业大学音频语音与语言处理研究组(ASLPNPU)、新加坡资讯通讯研究院(I2R)、深圳大数据研究院(SRIBD)、香港中文大学(深圳)等多家单位在2024年中文口语语言处理国际会议(ISCSLP2024)上推出对话语音克隆挑战赛(Conversational Voice Clone Challenge…

FRP 内网穿透 | 实现远程访问与安全管理

唠唠闲话 内网穿透简介 在互联网上&#xff0c;两个不同主机进行通信需要知道对方的 IP 地址。由于世界人口和设备众多&#xff0c;IPv4 资源相对紧缺&#xff0c;因此绝大部分情况下是通过路由器或交换机转换公网 IP 后才上网。 位于路由器或交换机后的设备通常是内网设备&…

Kettle根据分类实现Excel文件拆分——kettle开发31

将整理好的一份供应商付款明细Excel文件&#xff0c;按供应商拆分成多个Excel文件。 实现思路 本文我们首先将供应商付款明细表&#xff0c;按照“名称”拆分成多份Excel文件。拆分Excel文件打算用两个转换实现&#xff0c;一个用来将Excel数据读取到参数中&#xff0c;另外一…

2.4G低功耗无线收发SOC芯片-SI24R03

随着物联网产业对集成度的需求越来越高&#xff0c; 也在不断地完善公司产品生态。 “射频MCU”产品组合--无线SOC芯片&#xff08;MCU&#xff09;&#xff0c;简化了系统设计。只需要少量的外围器件&#xff0c;用户即可实现产品的开发&#xff0c;有效减少了PCB板的占用…

热门开源项目推荐: diffusionbee

随着AI技术的快速发展&#xff0c;深度学习和机器学习已经成为各领域的热门话题。Stable Diffusion是一种强大的深度学习模型&#xff0c;它能够在图像生成和处理方面展现出惊人的效果。为了让更多用户能够轻松地使用Stable Diffusion&#xff0c;Diffusion Bee应运而生&#x…

Instagram怎么打不开?IP被限制怎么解决?

Instagram作为跨境电商的主要推广平台之一&#xff0c;账号安全关系重大。了解并掌握账号管理及防IP封禁的知识可以有效防止Ins账号被限制访问。因此本文将重点介绍 Instagram账号的管理技巧以及如何通过代理IP等工具防封禁&#xff0c;帮助新手用户更好地享受这个社交平台的乐…

python django初步搭建(一)

记录一次简单的python django使用&#xff0c;后续调用api相关的暂时不想写。。。 一、环境 windows python 3.11.7 django 二、初步搭建 2.1 新建空文件夹 为了方便本次记录&#xff0c;新建了一个空的文件夹来使用。 直接在这里输入cmd 然后按下回车 2.2 安装virtual…

【小米商城】页面编写笔记(自用)

页面展示&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><style>body{margin: 0;}img{width:100%;height: 100%;}.header{/*height: 38px;*…

Linux开机自启/etc/init.d和/etc/rc.d/rc.local

文章目录 /etc/init.d和/etc/rc.d/rc.local的区别/etc/init.dsystemd介绍 /etc/init.d和/etc/rc.d/rc.local的区别 目的不同&#xff1a; /etc/rc.d/rc.local&#xff1a;用于在系统启动后执行用户自定义命令&#xff0c;适合简单的启动任务。 /etc/init.d&#xff1a;用于管理…

Vulnhub-DC-5

靶机IP:192.168.20.139 kaliIP:192.168.20.128 网络有问题的可以看下搭建Vulnhub靶机网络问题(获取不到IP) 信息收集 nmap扫下端口及版本 dirsearch扫下目录 LinuxphpNginx 环境 我们再去看前端界面&#xff0c;发现在contact界面有能提交的地方&#xff0c;但是经过测试不…