首页 > 编程语言 >【黑马python:函数】51-61

【黑马python:函数】51-61

时间:2024-10-26 15:47:35浏览次数:5  
标签:None 函数 python 51 61 num result print def

本节目录

一、前言

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

示例如下:

# 统计字符串长度
str1 = "itheima"
str2 = "itcast"
str3 = "python"

# 定义一个计数变量
count = 0
for i in str1:
    count += 1
print(f"字符串{str1}的长度为{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.使用函数的好处是:
将功能封装在函数内,可供随时随地重复利用;
提高代码的复用性,减少重复代码,提高开发效率。

二、函数的基础定义语法

1.定义形式

在这里插入图片描述

注意事项
参数如不需要,可以省略(后续章节讲解)
返回值如不需要,可以省略(后续章节讲解)
函数必须先定义后使用

2.练习案例:查核酸

手写换行符: \n

# 案例:查核酸
def search_1():
    # \n手写换行符
    print("欢迎!\n请出示健康码与核酸证明!")

search_1()

三、函数的传入参数

在这里插入图片描述

1.语法解析

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

# 定义两个数相加的函数
def add(x, y):
    result = x + y
    print(f"{x} +{y} = {result}")

# 调用参数
add(3, 4)

函数定义中,提供的x和y,称之为:形式参数(形参),表示函数声明将要使用的2个参数。参数之间使用逗号进行分隔。
函数调用中,提供的5和6,称之为:实际参数(实参),表示函数执行时真正使用的参数值。传入的时候,按照顺序传入数据,使用逗号分隔。
**传入参数的数量是不受限制的。**可以不使用参数,也可以使用任意N个参数。

def add(x, y, z):
    result = x + y +z
    print(f"{x} + {y} + {z} = {result}")

# 调用参数
add(3, 4, 5)

2.案例升级:核酸

在这里插入图片描述

代码如下(示例):

# 案例:核酸升级
def tem(x):
    if x <= 37.3:
        print(f"欢迎!请出示健康码及核酸证明,并配合测量体温!\n您的体温是:{x}度,请进!")
    else:
        print(f"欢迎!请出示健康码及核酸证明,并配合测量体温!\n您的体温是:{x}度,需要隔离!")

tem(36.5)

四、函数的返回值

1.语法格式

所谓“返回值”,就是程序中函数完成事情后,最后给调用者的结果。
在这里插入图片描述

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

# 函数返回值的语法
def add(x, y):
    result = x + y
    return result
    # return 后的代码不会再执行
    print("done!")

r = add(4, 6)
print(r)

2.返回值的None类型

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

# 返回值的None类型
def say_hi():
    print("hello!")

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

# 主动返回None的函数
def say_hi2():
    print("hello!")
    return None
result = say_hi2()
print(f"无返回值函数,返回的内容是{result}")
print(f"无返回值函数,返回的内容类型是{type(result)}")

None=False,if not 即if not False(not True=False,not False=True)而if语句只在Ture时运行所属下列执行代码

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

result = check_age(16)
#
if not result:
    print("未成年,禁止进入。")
# None用于声明无初始内容的变量
name = None

五、函数的说明文档

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

# 定义函数进行文档说明
def add(x, y):
    """
    两数相加
    :param x: 数字1
    :param y:数字2
    :return:结果
    """
    result = x + y
    print(f"两数相加的结果是{result}.")
    return result

六、函数的嵌套调用

1.什么是嵌套调用
在一个函数中,调用另外一个函数。
2.执行流程
函数A中执行到调用函数B的语句,会将函数B全部执行完成后,再继续执行函数A的剩余内容。

# 函数的嵌套调用
def func_b():
    print("---2---")

def func_a():
    print("---1---")
    # 嵌套调用func_b
    func_b()
    print("---3---")

func_a()

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

1.局部变量与全局变量

变量作用域指的是变量的作用范围(变量在哪里可用,在哪里不可用),主要分为两类:局部变量和全局变量。
所谓局部变量,是定义在函数内部的变量,即只在函数体内部生效。
所谓全局变量,指的是在函数内、外都能生效的变量。

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

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

test_a()
test_b()
print(num)

2.global关键字

使用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)

八、函数综合案例:ATM

在这里插入图片描述

# 案例:ATM
money = 5000000
name = None

name = input("please enter your name:")

定义查询函数:

# 定义查询函数
def query(show_header):
    if show_header:
        print("------------查询余额--------------")
    print(f"{name},hello!您的余额为{money}元。")

定义存款函数:

# 定义存款函数
def saving(num):
    global money
    money += num
    print("------------存款--------------")
    print(f"{name},您好,您存款{num}元成功。")
    # 调用query函数查询余额
    """
    这个query()默认是TRUE,
    也就是要打印查询余额,如果输入FALSE,
    就是不打印查询余额的表头了。
    """
    query(False)

定义取款函数:

# 定义取款函数
def get_money(num):
    global money
    money -= num
    print("------------取款--------------")
    print(f"{name},您好,您取款{num}元成功。")

    query(False)

定义主菜单:

# 定义主菜单
def main():
    print("------------主菜单--------------")
    print(f"{name},您好,欢迎来到银行。请选择您需要的服务:")
    print("查询余额\t输入[1]")
    print("存款\t\t输入[2]")
    print("取款\t\t输入[3]")
    print("退出\t\t输入[4]")
    return input("请输入您的选择:")

这里main函数的作用就是输入1234中任意一个数值,return就是在后面调用main函数时,这个数值可以传递给调用函数的地方。就记住如果函数括号里有传入数的话,就要有return.

设置无限循环:(while的条件需要得到布尔类型,true表示继续循环,false表示结束循环;while true就表示无限循环)

# 设置无限循环,确保程序不退出
while True:
    keyboard_input = main()
    if keyboard_input == "1":
        query(True)
        continue
    elif keyboard_input == "2":
        num = int(input("您想要存多少钱?请输入:"))
        saving(num)
        continue
    elif keyboard_input == "3":
        num = int(input("您想要取多少钱?请输入:"))
        get_money(num)
        continue
    else:
        print("程序退出。")
        break

标签:None,函数,python,51,61,num,result,print,def
From: https://blog.csdn.net/asaasaaax/article/details/143233595

相关文章

  • python基础综合案例(数据可视化-动态柱状图)
    1.基础柱状图的构建打开浏览器,你会发现这是一个动态图,会随着时间变化而变化具体效果大家可以看我主页有个动态柱状图视频本质上来说,是和我们构建一个折线统计图差不多的,只是把对象换了一下如果我们需要反转x和y轴,可以输入以下代码#反转x轴和y轴bar.reversal_axis()......
  • GBJ2510-ASEMI整流桥GBJ2510参数、封装、尺寸
    编辑:llGBJ2510-ASEMI整流桥GBJ2510参数、封装、尺寸型号:GBJ2510品牌:ASEMI封装:GBJ-4安装方式:直插批号:2024+现货:50000+正向电流(Id):25A反向耐压(VRRM):1000V正向浪涌电流:350A正向电压(VF):1.10V引脚数量:4芯片个数:4芯片尺寸:MIL功率(Pd):中小功率工作温度:-55°C~150°C类型:整......
  • 【STC8H】KEIL C51使用标准printf输出数值不对解决方法
    KEIL里扩展出了b,h,l来对输入字节宽的设置:(1)b八位(2)h十六位(默认)(3)l三十二位在KeilC51中用printf输出一个单字节变量时要使用%bd,如unsignedcharcounter;printf(“Currentcount:%bd\n”,counter);//输出8位”十进制有符号整数”printf(“Currentcount:%bx\n”,counter);//......
  • Python网络爬虫入门指南
    Python网络爬虫入门指南网络爬虫(WebCrawler),又称为网络蜘蛛(WebSpider),是一种自动化程序,能够遍历互联网上的网页,收集并提取所需的数据。Python作为一种功能强大且易于学习的编程语言,非常适合用于编写网络爬虫。本文将带你了解Python网络爬虫的基本概念、主要库及其使用方法......
  • Python 条件语句详解 if - elif-else
    Python条件语句详解一、引言在编程中,条件语句是一种基本的控制结构,它允许程序根据不同的条件执行不同的代码块。Python提供了丰富的条件语句,包括if、elif(elseif的缩写)和else,这些语句使得程序能够根据特定的条件做出决策,并执行相应的操作。二、条件语句的基本概念(......
  • 100种算法【Python版】第10篇——深度优先搜索
    本文目录1深度优先搜索2示例说明:迷宫路径查找2.1问题描述2.2DFS解决逻辑2.3python代码3算法应用3.1数独问题3.1.1DFS求解逻辑3.1.2python代码3.2单词搜索3.2.1python代码3.2.2代码逻辑4总结4.1优点4.2缺点1深度......
  • 如何把一个python列表(有很多个元素)变成一个excel表格的第一列?
    大家好,我是Python进阶者。一、前言前几天在Python最强王者群有个叫【麦当】的粉丝问了一个关于Python如何把一个python列表(有很多个元素)变成一个excel表格的第一列的问题,这里拿出来给大家分享下,一起学习。二、解决过程这里给出【dcpeng】和【德善堂小儿推拿-瑜亮老师】大佬......
  • Protues中51单片机按键无法复位(已解决)
    前言昨晚用Protues搭建了51的最小系统电路,在实物中好用的复位电路,到仿真里不能正常复位了。51单片机是高电平复位,所以在运行时RST引脚应该是低电平,但在仿真中RST引脚一直保持高电平,导致按下按键也不能复位单片机。解决方法我在网上搜索的解决方法一共有两种:1、改电......
  • Python的pickle模块
            pickle是Python标准库中的一个模块,用于对象的序列化(serialization)和反序列化(deserialization)。        序列化是将对象转换为字节流的过程,而反序列化则是从字节流恢复对象的过程。        通过pickle模块,可以将Python对象保存到文件......
  • 太极安全监控系统1.0(Python)
    一、项目介绍和功能介绍1.项目介绍安全监控系统是一个综合性的安全监控和防护工具,旨在帮助系统管理员检测和应对网络中的可疑活动。该系统集成了多种安全技术和工具,包括日志分析、网络流量监控、机器学习模型、动态防火墙规则配置、蜜罐部署、沙箱管理和自动反击功能。通......