【解锁技能】学会Python条件语句的终极指南!

news2024/11/25 19:48:56

文章目录

  • 前言
  • 一. python条件语句的介绍
    • 1.1 什么是条件语句
    • 1.2 条件语句的语法
    • 1.3 关于内置函数bool()
  • 二. 分支语句之单分支
  • 三. 多分支语句
    • 3.1 二分支语句
    • 3.2 多分支语句
    • 3.3 嵌套循环
  • 总结

在这里插入图片描述

前言

🏠个人主页:欢迎访问 沐风晓月的博客

🧑个人简介:大家好,我是沐风晓月,毕业于双一流院校计算机专业,是一名热爱分享的阿里云社区专家博主。
我喜欢探索新技术,研究创新应用,以实战经验为主,总结并分享我在学习和工作中的心得体会。
💕座右铭:先努力成长自己,再帮助更多的人,和我一起努力,让生活更加美好吧!
💕欢迎大家:这里是我的CSDN博客,一个分享知识的平台。
💕 如果你也热爱技术,想了解最新的IT趋势,想获取实用的学习资料,欢迎来访,三连支持,有问题私信我哦!让我们一起探索无限可能!😘

一. python条件语句的介绍

1.1 什么是条件语句

Python的条件语句是一种编程结构,用于根据条件的真假来控制程序执行的流程。它们通常用于对特定条件执行不同的代码块。

python中为什么会有条件语句?其实编程语言和我们用的汉语,英语异曲同,当一种表达满足不了需求的时候,肯定会考虑用其他的方式来表述。

比如我们常见的逻辑运算符:

如比较运算符(例如等于,不等于,大于,小于等)和布尔运算符(例如与、或、非等)。

一旦出现这些运算符的时候代表可能有不同的选择,比如大于的时候怎么办,小于的时候又该怎么办等。

而条件语句就是用来承接不同条件下执行不同代码快的设定。

例如,当满足某个条件时,程序可以执行一段代码,否则可以执行另一段代码。这使得程序可以根据不同的情况采取不同的行动,从而实现更加智能和适应性的功能。

Python中最常见的条件语句是if语句,它通常由if、elif和else关键字组成。if语句用于测试一个条件,如果条件为真,就执行紧跟在它后面的代码块,否则执行elif或者else语句块。通过这些条件语句,Python程序可以在不同的情况下执行不同的代码,从而实现更加灵活和智能的程序控制。

Python中有两种条件语句:if语句和if…else语句

1.2 条件语句的语法

  • if语句的语法如下:
if 条件:
    执行语句1
    执行语句2
    ...

如果条件成立,则执行相应的语句块。如果条件不成立,则跳过语句块并继续执行程序。

  • if…else语句的语法如下:
if 条件:
    执行语句1
    执行语句2
    ...
else:
    执行语句3
    执行语句4
    ...

如果条件成立,则执行第一个语句块。如果条件不成立,则执行第二个语句块。

1.3 关于内置函数bool()

Python一切皆对象,所有对象都有一个布尔值,想要获得布尔值需要一个内置函数bool()

bool()函数用于将给定的值转换为布尔值,如果值为True,则返回True,否则返回False。

在Python中,有许多值可以被解释为False,如数字0、空字符串、空列表、空字典和None等。除此之外,所有其他值都被解释为True。

例如: 以下对象的布尔值为False

  • False
  • 数值0
  • None
  • 空字符串
  • 空列表
  • 空元组
  • 空字典
  • 空集合

我们来测试下看看:

#测试对象的布尔值
print(bool(False))
print(bool(0))
print(bool(0.0))
print(bool(None))
print(bool(""))
print(bool([])) #空列表
print(bool(())) #空元祖
print(bool(tuple()))#空元组
print(bool(dict())) #空字典
print(bool(set()))  #空元组

执行的结果全部为 false

其他关于boo()的用法:

# 布尔值为 True
print(bool(1))       # True
print(bool("hello")) # True
print(bool([1, 2]))  # True

# 布尔值为 False
print(bool(0))       # False
print(bool(""))      # False
print(bool([]))      # False
print(bool(None))    # False

在上面的代码案例中,我们传递了不同类型的值到bool()函数中,并打印了函数的返回值。

我们可以看到,在第一个和第二个打印语句中,bool()函数返回True,因为它们是非空的整数和字符串。

在第三个打印语句中,bool()函数返回True,因为它的参数是非空列表。

在后面的打印语句中,bool()函数返回False,因为它们的参数是可以被解释为False的值,例如空字符串、空列表、数字0和None。

二. 分支语句之单分支

Python的单分支语句是if语句的最基本形式,它的语法如下:

if expression:
    statement(s)

其中,expression是一个表达式,它的值会被解释为True或False。如果expression的值为True,则执行statement(s),否则跳过这些语句.

需要注意以下几点:

  1. 在if语句中,expression后面必须加上冒号(:),否则会报语法错误。

  2. statement(s)必须缩进一个固定数量的空格或制表符,通常是4个空格或1个制表符。这个缩进是必需的,因为它表明哪些语句属于if语句的范围内。如果不缩进或缩进不正确,程序将无法执行或执行错误的代码块。

  3. expression的结果必须是布尔值(True或False)。如果表达式的结果是其他类型的值(例如整数或字符串),Python会自动将其转换为布尔值。通常情况下,非零数字和非空字符串会被解释为True,而零和空字符串会被解释为False。

案例一: 写一个单分支语句判断是否年满18岁

age = 18
if age >= 18:
    print("你已经成年了,可以去网吧!")

注释:
在这个例子中,age的值为18,所以age >= 18表达式的结果为True。因此,print()函数会被执行,并输出一条消息。如果age的值小于18,print()函数将不会被执行,因为if语句的条件不满足。

案例二: 写一个简易取款程序,判断取款余额是否充足

money=1000 #余额
s=int(input("请输入取款金额:"))
#判断余额是否充足
if money>=s:
    money=money-s
    print("取款成功,余额为:",money)

注释:
首先,我们定义了一个名为money的变量,并给它赋值1000。接着,我们使用input()函数获取用户输入的取款金额,并将其转换为整数类型(使用int()函数)并赋值给s变量。

在代码的下一行,我们使用注释来解释代码的作用。注释以#字符开头,表示该行后面的内容是注释,而不是Python代码。注释用于帮助程序员理解代码的作用和设计思路,它们不会被Python解释器执行。

在注释后面,我们使用if语句来判断余额是否足够。如果money的值大于或等于s,则执行if语句后面的代码块,将s从money中减去,并打印一条消息,显示取款成功和剩余的余额。否则,如果money的值小于s,if语句后面的代码块将被跳过,不执行任何操作。

注意,在if语句后面的代码块中,我们使用了print()函数来输出一条包含余额的消息。消息包含一个字符串和一个变量(money),我们使用逗号将它们隔开,这样Python会自动将它们拼接在一起。这个技巧可以用于将字符串和变量合并成一个输出。

输出结果:

在这里插入图片描述

但这里也出现一个问题,当我们的取款金额高于了1000的时候,程序会直接退出:

在这里插入图片描述

如果你想让他有输出,就需要使用多分支语句:

三. 多分支语句

3.1 二分支语句

多分之语句中我们默认包含了二分支语句,所谓的二分之就是只有两个分支

二分支语法如下:

if <condition>:
	<statement>
	<statement>
else:
	<statement>
	<statement>

单分支和二分支最大的不同就是二分支语句多了个else:

我们把上面的简易取款程序再次优化下:

money = 1000 # 余额
s = int(input("请输入取款金额:"))
if money >= s:
    money = money - s
    print("取款成功,余额为:", money)
else:
    print("余额不足,取款失败!")

在这个代码中,我们在if语句后面添加了一个else子句。

如果if语句的条件不满足(即余额小于取款金额),则执行else后面的代码块,打印一条余额不足的消息。

如果if语句的条件满足,则跳过else子句的代码块,直接执行if语句后面的代码块。

这样,我们就用一个二分支语句处理了两种情况:余额充足和余额不足。

我们还可以利用二分支语句更容易的来判断奇偶性:

#从键盘录入一个整数,判断奇数还是偶数
num=int(input("请输入一个整数: "))
if num%2==0:
    print(num,"是一个偶数")

else:
    print(num,"是一个奇数")

在上面的代码中,首先,我们使用input()函数从键盘获取一个整数,并使用int()函数将其转换为整数类型,并赋值给变量num。

接下来,我们使用if语句来判断num是否为偶数。如果num可以被2整除,即num % 2 == 0,则执行if语句后面的代码块,打印一条消息,显示num是偶数。

否则,如果num不能被2整除,即num % 2 != 0,if语句后面的代码块将被跳过,执行else语句后面的代码块,打印一条消息,显示num是奇数。

这个程序中使用了一个取模运算符%,它返回除法的余数。如果num % 2的结果为0,说明num可以被2整除,即是一个偶数,否则num不能被2整除,即是一个奇数。

我们来看看测试结果:
在这里插入图片描述

3.2 多分支语句

if多分支由if-elif-else组成,其中elif相当于else if,同时它可以使用多个if的嵌套。具体语法如下所示:

if condition1:
    statement1
elif condition2:
    statement2
elif condition3:
    statement3
...
else:
    statementN


在上述语句中,if是必须的,elif和else是可选的。

condition1是一个表达式,如果它的结果为True,那么将执行statement1语句。如果condition1的结果为False,那么将测试下一个条件condition2。

如果condition2的结果为True,将执行statement2,否则测试下一个条件condition3。

这个过程一直持续到找到一个条件的结果为True,或者没有条件为True,此时将执行else语句后面的statementN。

案例一: 写一个成绩等级查询

'''
90-100 A
80-89  B
70-79 C
60-69 D
0-59 E


'''
num = int(input("please input:"))
print(num)
if num >= 90:
    print('A Class')
elif num >= 80:
    print('B Class')
elif num >= 70:
    print('C Class')
elif num >=60:
    print('D Class')
elif num>0 and num<60:
    print('No Pass')

else:
    print("对不起你的成绩不在有效范围内")

注释:

首先,我们使用input()函数从键盘获取一个整数,并使用int()函数将其转换为整数类型,并赋值给变量num。

接下来,我们使用多分支语句来判断输入的num属于哪个成绩等级范围。

如果num大于或等于90,即num >= 90,则执行第一个条件if语句后面的代码块,输出"A Class"。
如果num大于或等于80,即num >= 80,则执行第二个条件elif语句后面的代码块,输出"B Class"。

依此类推,如果num属于70-79的范围,输出"C Class";

如果num属于60-69的范围,输出"D Class";如果num属于0-59的范围,输出"No Pass"。

最后,如果num小于等于0或大于100,则执行else语句后面的代码块,输出一条消息,显示输入的成绩不在有效范围内。

案例二:增加异常判断,在用户输入非规定的数值时候报出异常

在这个代码中我们其实也可以使用try… except 来捕获用户输入的无效的情况,当用户输入的不是整数类型的时候,就爆出 valueError异常。

我们在except块中处理这个异常,并提示用户重新输入。

代码如下:

try:
    num = int(input("请输入一个有效的成绩:"))
    if num < 0 or num > 100:
        print("请输入0到100之间的整数!")
    elif num >= 90:
        print('A Class')
    elif num >= 80:
        print('B Class')
    elif num >= 70:
        print('C Class')
    elif num >=60:
        print('D Class')
    else:
        print('E Class')
except ValueError:
    print("输入的不是有效的整数!")

这里如果用户输入的不是0到100的整数,就说明后面的判断已经没有意义了,所以先验证是不是0到100的整数。

也就是我们的第一个条件: 我们将第一个条件if num < 0 or num > 100:

我们输入一个0-100之外的整数来看看:

在这里插入图片描述

案例三: 多个判断条件的应用

由于Python不支持switch语句,所以多个条件判断,只能用elif来实现,如果判断需要多个条件需同时判断时,可以:

  • 使用or (或),表示两个条件有一个成立时判断条件成功
  • 使用and (与),表示只有两个条件同时成立的情况下,判断条件才成功
# 判断值是否在小于0或大于10
num = 10
if num < 0 or num > 10:    
    print('hello')
else:
    print('undefine')
# 输出结果: undefine


# 判断值是否在0~5或者10~15之间
num = 8
if (num >= 0 and num <= 5) or (num >= 10 and num <= 15):    
    print('hello')
else:
    print('undefine')

3.3 嵌套循环

所谓的嵌套循环,顾名思义就是在循环中还嵌套了循环:

案例一: 购物结算程序

购物结算程序,根据用户是否为会员以及购买金额的不同,给出不同的折扣。

代码的流程如下:

  1. 从用户输入中获取是否为会员的信息以及购物金额的信息。
  2. 判断用户是否为会员,如果是会员则进入下一个判断;如果不是会员则根据购物金额是否满足满减条件给出折扣价并输出。
  3. 判断购物金额是否满足满减条件,如果满足则给出相应的折扣;如果不满足则给出默认的折扣(即不打折)。
  4. 计算折扣价并输出。
answer = input("你是会员吗?y/n")
money = int(input('请输入你的购物金额:'))

if answer == 'y':
    if money >= 200:
        discount = 0.8
    elif money > 100:
        discount = 0.9
    else:
        discount = 1.0
    pay_money = money * discount
    print('您本次购物的原价为:{}元,折扣价为:{}元'.format(money, pay_money))
else:
    print("您不是会员")
    if money >= 500:
        discount = 0.9
    else:
        discount = 1.0
    pay_money = money * discount
    print('您本次购物的原价为:{}元,折扣价为:{}元'.format(money, pay_money))

在这段代码中,我们将每个输出内容的字符串都用format()方法格式化输出,我们将两个if语句中计算折扣的部分合并在一起,并在每个if语句之外计算折扣价,避免代码的重复

执行结果:

在这里插入图片描述

总结

原创不易,还希望各位大佬支持一下 \textcolor{blue}{原创不易,还希望各位大佬支持一下} 原创不易,还希望各位大佬支持一下

👍 点赞,你的认可是我创作的动力! \textcolor{green}{点赞,你的认可是我创作的动力!} 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向! \textcolor{green}{收藏,你的青睐是我努力的方向!} 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富! \textcolor{green}{评论,你的意见是我进步的财富!} 评论,你的意见是我进步的财富!

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

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

相关文章

Softing OPC Tunnel——绕过DCOM配置实现OPC Classic广域网通信

一 摘要 Softing OPC Tunnel是dataFEED OPC Suite的一个组件&#xff0c;可避免跨设备OPC Classic通信中出现的DCOM配置问题&#xff0c;同时可保证跨网络数据交换的高性能和可靠性。OPC Tunnel内部集成的存储转发功能&#xff0c;可在连接中断时缓存数据&#xff0c;并在重新…

html的常见标签使用

目录 1.vscode基础操作 2.html基础 语法 3.HTML文件的基本结构标签 4.注释标签 5.标题标签 6.段落标签:p 7.格式化标签 8.图片标签:img 绝对路径 相对路径 网络路径 alt属性 title属性 width/height属性 9.超链接标签:a 10.表格标签 11.列表标签 有序列表 无…

Hbase -- Compact工具梳理

1. 背景 当前&#xff0c;线上HBase集群的自动Major Compact是关闭的&#xff0c;我们选择在凌晨业务空闲的时候进行手动触发Major Compact&#xff0c;Compact工具就是在运维平台上对资源组、RS、表进行Major Compact。目前线上有2种版本的Compact程序&#xff1a;Compact_v1…

html 懒加载图片实现方法

懒加载逻辑 一般如果场景比较大&#xff0c;滚动条很长&#xff0c;图片比较多的情况下&#xff0c;不使用赖加载图片会一下子把资源都加载&#xff0c;导致性能很慢&#xff0c;甚至没有滚动到下面也加载了&#xff0c;很浪费资源现在通过滚动事件来处理图片加载,我们先吧要显…

Vue项目中components组件的使用笔记

目录 前言 一、components和component的区别&#xff1f; 二、components使用的步骤 1.创建组件vue文件 2.引入组件 3.注册组件 4.应用组件 总结 前言 本文章&#xff0c;只是初步了解记录components的使用步骤。 一、components和component的区别&#xff1f; compo…

【Python学习笔记】第二十一节 Python Lambda 函数

Python 提供了非常多的库和内置函数。有不同的方法可以执行相同的任务&#xff0c;而在 Python 中&#xff0c;有个万能之王函数&#xff1a;lambda 函数&#xff0c;它以不同的方式在任何地方使用。一、Lambda 函数简介在 Python 中&#xff0c;函数可以接受一个或多个位置参数…

火爆全网的ChatGPT 和AI 可以为项目经理做什么?

作为一款人工智能聊天机器人&#xff0c;ChatGPT因其逼真和人性化的特性而风靡全球&#xff0c;无疑是当今技术的新流行。人工智能 (AI) 有可能彻底改变许多行业&#xff0c;包括项目管理&#xff0c;及时了解最新技术以及它如何影响你的工作至关重要。于是&#xff0c;我们与C…

C++ string类(二)及深浅拷贝

一、string类方法使用举例1.迭代器迭代器本质&#xff1a;指针&#xff08;理解&#xff09;迭代器&#xff1a;正向迭代器&#xff1a; begin() | end() 反向迭代器&#xff1a; rbegin() | rend()2.find使用//找到s中某个字符 void TestString3() {string s("AAADEFNUIE…

分层测试(1)分层测试是什么?【必备】

1. 什么是分层测试&#xff1f; 分层测试是通过对质量问题分类、分层来保证整体系统质量的测试体系。 模块内通过接口测试保证模块质量&#xff0c;多模块之间通过集成测试保证通信路径和模块间交互质量&#xff0c;整体系统通过端到端用例对核心业务场景进行验证&#xff0c…

Spring Boot 3.0系列【2】部署篇之使用GraalVM构建原生镜像

有道无术&#xff0c;术尚可求&#xff0c;有术无道&#xff0c;止于术。 本系列Spring Boot版本2.7.0 文章目录概述JIT & AOTJIT &#xff08;动态编译&#xff09;AOT&#xff08;静态编译&#xff09;GraalVM简介运行模式Native Image&#xff08;原生镜像&#xff09;…

无线蓝牙耳机哪个牌子性价比高?国内性价比高的蓝牙耳机推荐

近年来&#xff0c;蓝牙耳机越来越成为人们日常生活中常见的数码产品之一&#xff0c;其便捷性以及愈发先进的功能得到了不少消费者的认可。无线蓝牙耳机哪个牌子性价比高&#xff1f;针对这个问题&#xff0c;我来给大家推荐几款国内性价比高的蓝牙耳机&#xff0c;一起来看看…

AI画图_stable-diffusion-webui安装使用指南(1)

本文章适用于: 有一定学习能力和钻研能力&#xff0c;遇到问题能合理使用搜索引擎尝试解决问题的人想在windows系统中尝试使用AI作画工具stable-diffusion-webui进行绘画的人有一定的计算机基础&#xff08;会魔法上网、知道 python和Git&#xff09;和英文阅读能力的人显卡为…

js侧滑显示删除按钮

效果图&#xff1a; <!DOCTYPE html> <html><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0, maximum-scale1.0, user-scalableno"><title>js侧滑显示删…

堡垒机采购注意事项说明

随着各大企业对数据安全的高度重视&#xff0c;堡垒机作为基础数据安全产品&#xff0c;被采购的也越来越多。但面对是棉厂众多的堡垒机品牌&#xff0c;采购者往往很蒙圈。这里我们行云管家小编就给大家汇总说明了几点堡垒机采购注意事项&#xff0c;希望对大家有用。 堡垒机…

在中外合作办学硕士领域似乎自己一直在纠结,也许是为了能遇见人大女王金融硕士

2023考研成绩如期而至&#xff0c;还记得考试时的一幕幕吗&#xff1f;在身体被高热侵蚀的情况下&#xff0c;我们似乎很难忘记这次考试所带给我们的经历。如今成绩下来了&#xff0c;可能与我们预期的几乎相同&#xff0c;但是在不断地寻找新的学习途径的过程中我们发现&#…

字节跳动青训营--Webpack

文章目录前言一、为什么要学习Webpack&#xff1f;二、什么是Webpack&#xff1f;1. 产生背景2. 基础概念三、使用Webpack1. 安装2. 编辑配置文件3. 执行编译命令核心流程四、如何使用Webpack流程类配置配置总览五、理解Loader六、理解插件插件钩子课外关注资料前言 此文章仅用…

华为OD机试题,用 Java 解【特异性双端队列】问题

最近更新的博客 华为OD机试题,用 Java 解【停车场车辆统计】问题华为OD机试题,用 Java 解【字符串变换最小字符串】问题华为OD机试题,用 Java 解【计算最大乘积】问题华为OD机试题,用 Java 解【DNA 序列】问题华为OD机试 - 组成最大数(Java) | 机试题算法思路 【2023】使…

I.MX6ULL内核开发12:使用设备树插件实现RGB灯驱动

目录 一、引言 二、设备树插件格式 三、实验说明 四、实验准备 4.1 通过内核工具编译设备树插件 五、实验效果 5.1 uboot加载 5.2 加载RGB驱动 一、引言 Linux4.4以后引入了动态设备树&#xff08;Dynamic DevicesTree&#xff09;&#xff0c;这里翻译位“设备树插件…

【C++ | bug | 运算符重载】定义矩阵(模板)类时,使用 “友元函数” 进行 * 运算符重载时编译报错

作者&#xff1a;非妃是公主 专栏&#xff1a;《C》 博客地址&#xff1a;https://blog.csdn.net/myf_666 个性签&#xff1a;顺境不惰&#xff0c;逆境不馁&#xff0c;以心制境&#xff0c;万事可成。——曾国藩 文章目录专栏推荐一、类的声明及函数定义二、错误信息三、问题…

MySQL数据库操作

查看数据库语法show databases——列出所有的数据库 show databases [ like wild ];——列出和字符串wild名字相同的数据库 这里可以配合SQl的 "%" 和 "_" 通配符使用来查找多个数据库在SQL语句中"%"代表任意字符出现任意次数,"_"代表…