python if条件判断的基础及应用

news2024/11/20 18:43:39

当前版本:

  • Python 3.8.4

简介

    if 语句是一种用于根据一个或多个条件的结果来执行不同代码块的控制流结构,它会检查给定的条件是否为真。如果条件为真,则执行与之关联的代码块;如果条件为假,则执行与之关联的其他代码块或者继续执行程序的下一段代码。

        

文章目录如下

1. if 的作用

2. if 的语法

2.1. 基础语法

2.2. 多分支判断

3. 判断条件

3.1. 比较符判断

3.2. 逻辑符判断

3.3. 成员符判断

4. 实际应用

4.1. 商品折扣计算

4.2. 年龄分类

4.3. 密码验证


        

1. if 的作用

if 条件的作用是在程序中根据给定的条件来决定是否执行特定的代码块,条件可以是True或False。当条件为True时,True相关的代码块将被执行;当条件为False时,False相关代码被执行。

        

例如:用户登录则可以使用 if 判断实现:

# 定义正确的密码
user_pwd = "123456"

# 判断密码是否正确
if input("请输入root密码:") == user_pwd:
    print("密码正确!")
else:
    print("密码错误!")

        

2. if 的语法

2.1. 基础语法

if 的基本格式为:

if 条件:    # 判断这个条件
    xxx    # 执行条件为真的代码
else:
    yyy    # 执行条件为假的代码
  • if:中文翻译为 "如果"。理解为:如果条件为真,那么执行xxx
  • else:中文翻译为 "否则"。理解为:不满足 if 条件则执行yyy 
  • 条件:可以是比较符判断、逻辑符判断、成员符判断等,例如 a>b

注意:条件判断下面的代码块必须有缩进,否则语法错误。

        

举例说明(判断1=1)

if 1 == 1:
    print("条件为真,执行这里...")
else:
    print("条件为假,执行这里...")

  • 1肯定等于1,所以条件为真。执行为真的代码块。

如果判断1=2,则是条件为假

if 1 == 2:
    print("条件为真,执行这里...")
else:
    print("条件为假,执行这里...")

        

当然,也可以不带入为假的代码

if 1 == 1:
    print("条件为真,执行这里...")

        

2.2. 多分支判断

当需要判断的对象可能存在多个值,并且需要根据不同的情况执行不同的代码,那么可以利用多分支来处理。语法如下:

if 条件1:
    执行条件1代码块
elif 条件2:
    执行条件2代码块
elif 条件3:
    执行条件3代码块
else
    执行不满足条件1、2、3的代码

        

举个例子,通过成绩来判断这个同学表现

# 循环判断成绩
while True:
    score = int(input("请输入您的成绩: "))
    if score == -1:    # 如果输入-1则退出程序
        print("退出!")
        break
    elif score < 60:   # 如果成绩小于60则执行这里
        print("成绩不合格")
    elif score < 70:   # 如果成绩小于70则执行这里
        print("成绩还算一般")
    elif score < 85:   # 如果成绩小于85则执行这里
        print("成绩还不错")
    elif score < 100:  # 如果成绩小于100则执行这里
        print("这位同学很优秀")

        

elif 中文翻译为 "否则如果",也就是第1次通过 if 判断,当 if 判断为假时才会判断下面的 elif,如果 if 判断为真则不会运行下面的 elif。举例说明

# 定义一个变量
a = 10

# 判断这个变量
if a < 20:
    print("a < 20")
elif a < 30:
    print("a < 30")
elif a < 40:
    print("a < 40")

可以看到3个条件都符合,但如果前面的判断成功,则不会继续判断后面的代码

我们将 a 改为25也是同理,满足第1个 elif 后,第2个 elif 则不会再去判断

        

3. 判断条件

我们可以通过比较符判断、逻辑符判断和成员符判断,将这些条件根据需要进行组合,并且可以嵌套在 if 语句中,用于实现复杂的逻辑判断。

3.1. 比较符判断

比较符包括:

> :大于
< :小于
==:等于
!=:不等于
>=:大于等于
<=:小于等于

【案例一】判断数字大于等于10

# 定义一个变量
n = 20

# 判断这个变量
if n >= 10:
    print("变量n大于等于10")

        

【案例二】判断字符串为abc

# 定义一个变量
s = "AAA"

# 判断这个变量
if s == "abc":
    print("变量s的值为abc")
else:
    print("变量s的值不是abc")

        

3.2. 逻辑符判断

逻辑符(与、或、非)

and(与):必须满足全部条件
or (或):满足其他一个条件即可
not(非):取反(真->假;假->真)

【案例一】必须满足全部条件

# 判断多个条件
if (1>0) and (2<3) and (2==3):
    print("全部条件都满足")
else:
    print("其中有一个或多个不满足条件")
  • 括号是为了便于阅读,并不是必须的 

        

 【案例二】满足任意一个条件即可

# 判断多个条件
if (1>0) or (2<3) or (2==3):
    print("满足其中一个或多个条件")
else:
    print("一个条件都不满足")

        

【案例三】取反

if not 1 == 2:
    print("执行xxx")

  • 1本身不等于2,取反后相当于判断这里为 False

        

3.3. 成员符判断

一般通过成员符来判断一个元素是否属于一个集合(列表、元组、字符串等)。

in:属于
not in:不属于

【案例一】判断元素属于列表

if "A" in ["A", "B"]:
    print("A在列表中")
else:
    print("A不在列表中")

        

 【案例二】判断元素不属于列表

if "C" not in ["A", "B"]:
    print("C不在列表中")
else:
    print("C在列表中")

        

4. 实际应用

4.1. 商品折扣计算

需求:某商店消费满200打95折,消费满500打9折,消费满1000打8折,消费满2000打7折。

# 循环判断这个金额并计算
while True:
    num = int(input("请输入客户消费金额(-1退出):"))
    if num == -1:
        print("退出!")
        break
    elif num < 200:
        print("客户消费{}元,无折扣应支付{}元\n".format(num, num))
    elif num < 500:
        print("客户消费{}元,95折后应支付{}元\n".format(num, num * 0.95))
    elif num < 1000:
        print("客户消费{}元,9折后应支付{}元\n".format(num, num * 0.9))
    elif num < 2000:
        print("客户消费{}元,8折后应支付{}元\n".format(num, num * 0.8))
    elif num >= 2000:
        print("客户消费{}元,7折后应支付{}元\n".format(num, num * 0.7))

        

4.2. 年龄分类

需求:12岁以下为儿童,12~17岁为青少年,18~24为青年,24岁以上为成年人。

# 循环判断
while True:
    age = int(input("请输入年龄:"))
    if age == -1:
        print("退出交互系统!")
        break
    elif age < 12:
        print("儿童")
    elif age < 18:
        print("青少年")
    elif age < 25:
        print("青年")
    else:
        print("成年人")

        

4.3. 密码验证

需求:用户登录系统需要输入root密码,输入3次错误则锁定用户。

password = "123456"     # 定义密码
attempts = 0            # 当前登录次数
locked = False          # 锁定账户

while attempts < 3:
    user_input = input("请输入root密码:")

    if user_input == password:
        print("登录成功!")
        break
    else:
        attempts += 1
        print("密码错误!还剩余{}次尝试。".format(3 - attempts))

        if attempts == 3:
            # 失败3次后加锁
            locked = True

# 判断是否被加锁
if locked:
    print("密码已锁定,无法登录。")

        

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

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

相关文章

【 CSS 】基础 2

“生活就像骑自行车&#xff0c;想要保持平衡&#xff0c;就得不断前行。” - 阿尔伯特爱因斯坦 CSS 基础 2 1. emmet 语法 1.1 简介 Emmet语法的前身是 Zen coding&#xff0c;它使用缩写&#xff0c;来提高 HTML / CSS 的编写速度&#xff0c; VSCode 内部已经集成该语法。…

《剑指 Offer》专项突破版 - 面试题 21 : 删除倒数第 n 个节点(C++ 实现)

目录 前言 方法一、遍历链表两次 方法二、遍历链表一次&#xff08;前后双指针&#xff09; 前言 题目链接&#xff1a;LCR 021. 删除链表的倒数第 N 个结点 - 力扣&#xff08;LeetCode&#xff09; 题目&#xff1a; 如果给定一个链表&#xff0c;请问如何删除链表中的…

ThinkPad T14/T15/P14s/P15s gen2电脑原厂Win10系统镜像 恢复笔记本出厂时预装自带OEM系统

lenovo联想原装出厂Windows10系统&#xff0c;适用型号&#xff1a; ThinkPad T14 Gen 2&#xff0c;ThinPad T15 Gen 2&#xff0c;ThinkPad P14s Gen 2&#xff0c;ThinkPad P15s Gen 2 &#xff08;20W1,20W5,20VY,20W7,20W0,20W4,20VX,20W6&#xff09; 链接&#xff1…

BO、VO层应用实例

&#x1f497;wei_shuo的个人主页 &#x1f4ab;wei_shuo的学习社区 &#x1f310;Hello World &#xff01; BO、VO层应用实例 BO&#xff08;Business Object&#xff09;层是一种用于处理业务逻辑的组件层。BO层主要负责封装和处理与业务相关的逻辑和数据操作&#xff0c;它…

web前端项目-超级玛丽【附源码】

超级玛丽 【超级玛丽】是一个基于HTML5和JavaScript开发的经典电子游戏。玩家需要控制主角马里奥在各种关卡中跳跃、奔跑、消灭敌人&#xff0c;以完成游戏目标。玩家通过浏览器可以体验经典的超级玛丽关卡和冒险。 运行效果&#xff1a;方向键控制马里奥的左右移动、跳跃、奔…

【Unity学习笔记】第十二 · New Input System 及其系统结构 和 源码浅析

转载请注明出处&#xff1a;&#x1f517;https://blog.csdn.net/weixin_44013533/article/details/132534422 作者&#xff1a;CSDN|Ringleader| 主要参考&#xff1a; 官方文档&#xff1a;Unity官方Input System手册与API官方测试用例&#xff1a;Unity-Technologies/InputS…

大语言模型无代码构建知识图谱(2)--环境准备

软件环境 需已安装MySQL数据库。需已安装HuggingFists系统&#xff0c;该系统将提供无代码的可视化数据开发环境。通过该系统利用大语言模型辅助知识图谱的构建。HuggingFists系统的安装可参考《HuggingFists-低代码玩转LLM RAG-准备篇》 流程环境 数据文件 进入HuggingFis…

源码透析MapperScannerRegistrar和MapperScannerConfigurer的区别及作用

文章目录 前言MapperScannerRegistrar使用方式实现原理 MapperScannerConfigurer使用方式实现原理 两者区别对比源码解析MapperScannerRegistrarMapperScannerConfigurerMapperFactoryBean 总结 本文里面涉及到的相关文章 MapperScan注解里面涉及到的Import注解解析可以查看系…

Flutter:跨平台移动应用开发的未来

Flutter&#xff1a;跨平台移动应用开发的未来 引言 Flutter的背景和概述 Flutter是由Google开发的一个开源UI工具包&#xff0c;用于构建漂亮、快速且高度可定制的移动应用程序。它于2017年首次发布&#xff0c;并迅速引起了开发者们的关注。Flutter采用了一种全新的方法来…

pip install flagai时出现Collecting PyYAML==5.4.1 (from flagai)等错误信息的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

7.【CPP】String类

一.汉字的编码 我们知道计算机存储英文字母&#xff0c;标点&#xff0c;数字用的是ascall码&#xff0c;128种用一个字节表示绰绰有余。而汉字远远不止128种&#xff0c;因此汉字需要两个字节表示。 1.gbk编码中汉字占两个字节。 2.utf-8中&#xff0c;一个汉字占三个字节。…

Oracle Linux 6.10 安装图解

风险告知 本人及本篇博文不为任何人及任何行为的任何风险承担责任&#xff0c;图解仅供参考&#xff0c;请悉知&#xff01;本次安装图解是在一个全新的演示环境下进行的&#xff0c;演示环境中没有任何有价值的数据&#xff0c;但这并不代表摆在你面前的环境也是如此。生产环境…

第十回 朱贵水亭施号箭 林冲雪夜上梁山-FreeBSD/Linux 控制台基础操作

林冲被众庄客捉住&#xff0c;吊在门楼下&#xff0c;正被打时&#xff0c;柴进来了&#xff0c;赶快把林冲救下来。原来这是柴进打猎用的小庄子&#xff0c; 林冲就把火烧草料场一事跟柴进详细的说了。柴进说兄弟真是命运多磨难啊。林冲住了几日&#xff0c;恐怕连累柴进&…

Spring+SprinMVC+MyBatis配置方式简易模板

SpringSprinMVCMyBatis配置方式简易模板代码Demo GitHub访问 ssm-tpl-cfg 一、SQL数据准备 创建数据库test&#xff0c;执行下方SQL创建表ssm-tpl-cfg /*Navicat Premium Data TransferSource Server : 127.0.0.1Source Server Type : MySQLSource Server Versio…

网络编程 day6

网络聊天室项目 1.服务器端 #include <head.h> #define SER_IP "192.168.125.11" #define SER_PORT 6666 typedef struct Msg {char user[32]; //用户名int type; //1.登录、2.发消息、0.退出char text[1024]; //消息 } msg_t; typedef struct List…

Vue diff原理

✨ 专栏介绍 在当今Web开发领域中&#xff0c;构建交互性强、可复用且易于维护的用户界面是至关重要的。而Vue.js作为一款现代化且流行的JavaScript框架&#xff0c;正是为了满足这些需求而诞生。它采用了MVVM架构模式&#xff0c;并通过数据驱动和组件化的方式&#xff0c;使…

Med-YOLO:3D + 医学影像 + 检测框架

Med-YOLO&#xff1a;3D 医学影像 检测框架 提出背景设计思路网络设计训练设计讨论分析 魔改代码&#xff1a;加强小目标检测总结 提出背景 论文链接&#xff1a;https://arxiv.org/abs/2312.07729 代码链接&#xff1a;https://github.com/JDSobek/MedYOLO 提出背景&…

助力焊接场景下自动化缺陷检测识别,基于YOLOv8【n/s/m/l/x】全系列参数模型开发构建工业焊接场景下工件表面焊接裂纹缺陷检测识别分析系统

焊接是一个不陌生但是对于开发来说相对小众的场景&#xff0c;在工件表面焊接场景下常常有对工件表面缺陷智能自动化检测识别的需求&#xff0c;工业AI结合落地是一个比较有潜力的场景&#xff0c;在我们前面的博文开发实践中也有一些相关的实践&#xff0c;感兴趣的话可以自行…

一周时间,开发了一款封面图生成工具

介绍 这是一款封面图的制作工具&#xff0c;根据简单的配置即可生成一张好看的封面图&#xff0c;目前已有七款主题可以选择。做这个工具的初衷来自平时写文章&#xff0c;都为封面图发愁&#xff0c;去图片 网站上搜索很难找到满意的&#xff0c;而且当你要的图如果要搭配上文…

【OCR项目】之用HALCON的深度学习工具进行文字识别,并导出到C++调用

前言 HALCON是一个强大的机器视觉工具&#xff0c;包含了2D&#xff0c;3D图像各种算子&#xff0c;以及各种任务的深度学习工具&#xff0c;包括目标检测&#xff0c;实例分割&#xff0c;文字识别等。 这次从实际生产的角度&#xff0c;来分享一下如何用HALCON进行文字识别…