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


当前版本:

  • 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.mfbz.cn/a/339193.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

工作小计- RGB相关算子实现

项目中的模型一直都是直接操作NV12的yuv格式数据&#xff0c;这次的模型只支持RGB格式的输入&#xff0c;正好来自己实现对应的算子。 这里记录一下对应算子的实现过程&#xff0c;主要涉及到NV12到RGB的变换&#xff0c;RGB的crop/resize操作&#xff0c;对于数据的Norm/ToFlo…

python 正则表达式学习(1)

正则表达式是一个特殊的字符序列&#xff0c;它能帮助你方便的检查一个字符串是否与某种模式匹配。 1. 特殊符号 1.1 符号含义 模式描述^匹配字符串的开头$匹配字符串的末尾.匹配任意字符&#xff0c;除了换行符&#xff0c;当re.DOTALL标记被指定时&#xff0c;则可以匹配包…

芯片工程系列(1)封装基础知识、分来、步骤与方法.md

英文缩写 环氧树脂模塑料&#xff08;Epoxy Molding Compound&#xff0c;EMC&#xff09;引线框架封装&#xff08;Leadframe&#xff09;&#xff0c;基板封装&#xff08;Substrate&#xff09;&#xff0c;Substrate 基板晶圆片级芯片规模封装&#xff08;Wafer Level Chi…

ESP32-UDP通信 (Arduino)

ESP32配置UDP通信 介绍 用户数据报协议UDP UDP&#xff08;User Datagram Protocol&#xff09;是一种在计算机网络中常用的传输层协议&#xff0c;它与TCP&#xff08;Transmission Control Protocol&#xff09;一样属于传输层协议的一种。UDP主要用于在网络中传输数据&…

小程序学习-20

建议每次构建npm之前都先删除miniprogram_npm

第15届蓝桥杯嵌入式省赛准备第三天总结笔记(使用STM32cubeMX创建hal库工程+串口接收发送)

因为我是自己搞得板子&#xff0c;原本的下程序和串口1有问题&#xff0c;所以我用的是串口2&#xff0c;用的PA2和PA3 一&#xff0c;使用CubeMX配置串口 选择A开头的这个是异步通信。 配置串口参数&#xff0c;往届的题基本用的9600波特率&#xff0c;所以我这里设置为9600…

【Linux】解决能访问github但克隆不了的问题

文章目录 1.查看你的代理的地址&#xff1a;2.git设置3.尝试clone 1.查看你的代理的地址&#xff1a; 2.git设置 先看看当前的git设置 $ git config --list然后git中要设置好对应的地址 git config --global http.proxy 127.0.0.1:78903.尝试clone $ git clone https://git…

异或运算的骚操作,由浅入深拿捏一类型的题

文章目录 &#x1f680;前言&#x1f680;异或运算的基本用法&#x1f680;一组数中一种数出现了奇数次&#xff0c;其他种数出现了偶数次&#xff0c;找出这个数&#x1f680;一组数中有两种数出现了奇数次&#xff0c;其他种数出现了偶数次&#xff0c;求这两个数✈️得到一个…

4D毫米波雷达——FFT-RadNet 目标检测与可行驶区域分割 CVPR2022

前言 本文介绍使用4D毫米波雷达&#xff0c;实现目标检测与可行驶区域分割&#xff0c;它是来自CVPR2022的。 会讲解论文整体思路、输入数据分析、模型框架、设计理念、损失函数等&#xff0c;还有结合代码进行分析。 论文地址&#xff1a;Raw High-Definition Radar for Mu…

[pytorch] 2. tensorboard

tensorboard简介 TensorBoard 是一组用于数据可视化的工具。它包含在流行的开源机器学习库 Tensorflow 中.但是也可以独立安装&#xff0c;服务Pytorch等其他的框架 可以常常用来观察训练过程中每一阶段如何输出的 安装pip install tensorboard启动tensorboard --logdir<d…

自定义注解与拦截器实现不规范sql拦截(自定义注解填充插件篇)

在自定义注解与拦截器实现不规范sql拦截&#xff08;拦截器实现篇&#xff09;中提到过&#xff0c;写了一个idea插件来辅助对Mapper接口中的方法添加自定义注解&#xff0c;这边记录一下插件的实现。 需求简介 在上一篇中&#xff0c;定义了一个自定义注解对需要经过where判…

理解PCIE设备透传

PCIE设备透传解决的是使虚拟机直接访问PCIE设备的技术&#xff0c;通常情况下&#xff0c;为了使虚拟机能够访问Hypervisor上的资源&#xff0c;QEMU&#xff0c;KVMTOOL等虚拟机工具提供了"trap and emulate"&#xff0c; Virtio半虚拟化等机制实现。但是这些实现都…

[学习笔记]刘知远团队大模型技术与交叉应用L4-Prompt-learning Delta-learning

Prompt-Learning and Delta-Tunning 背景和概览 但是从T5开始&#xff0c;大模型越来越大了。 微调很难了。 模型的趋势 Model Scaling&#xff1a;模型越来越大 Difficult Tuning&#xff1a;微调越来越难 Prompt-Learning 基本组成与流程介绍 预训练和fine-tuning有一…

数学建模学习笔记||层次分析法

评价类问题 解决评价类问题首先需要想到一下三个问题 我们评价的目标是什么我们为了达到这个目标有哪几种可行方案评价的准则或者说指标是什么 对于以上三个问题&#xff0c;我们可以根据题目中的背景材料&#xff0c;常识以及网上收集到的参考资料进行结合&#xff0c;从而筛…

反欺诈与异常点检测

1. 反欺诈检检测 1.1 反欺诈检测的难点 反诈骗实际是个多分类问题&#xff0c;每种不同的诈骗都当做一种单独的类型。除了欺诈手段多样且持续变化&#xff0c;欺诈检测一般还面临以下问题&#xff1a; 1. 大部分情况下数据是没有标签的&#xff0c;各种成熟的监督学习没有用武…

反序列化字符串逃逸(下篇)

这里承接上篇文章反序列化字符串逃逸&#xff08;上篇&#xff09;-CSDN博客带大家学习反序列化字符串逃逸减少&#xff0c;没有看过的可以先去看看&#xff0c;不会吃亏。 例题&#xff1a; <?php highlight_file(__FILE__); error_reporting(0); function filter($name…

vectorCast基于分类树设计测试用例

根据代码的条件,以图表的形式为大家展示出各个变量组合的等价类划分。性别分为2类,年龄分为3类,工作年数分为3类。 那么它们最全面的组合结果就是2*3*3=18 也就是说它们最多有18种组合情况的测试用例 2.选中该函数,点击右键 3.自动生成一个map的基于分类树的测试用例 4.此…

commit 历史版本记录修正

commit 历史版本记录修正 当 Bug 发生的时候&#xff0c;我们会需要去追踪特定 bug 的历史记录&#xff0c;以查出该 bug 真正发生的原因&#xff0c;这个时候就是版本控制带来最大价值的时候。 因此&#xff0c;要怎样维持一个好的版本记录是非常重要的&#xff0c;下面是一…

机器学习--Matplotlib

机器学习–Matplotlib Matplotlib 是专门用于开发2D图表(包括3D图表)以渐进、交互式方式实现数据可视化 简单的Matplotlib画图 — 以折线图为例 matplotlib.pyplot模块 matplotlib.pytplot包含了一系列类似于matlab的画图函数。 import matplotlib.pyplot as plt图形绘制流…

7.【CPP】String类

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