当前位置: 首页 > news >正文

【Python】if选择判断结构详解:逻辑分支与条件判断

目录

🍔 if选择判断结构作用

1.1 if选择判断结构的基本语法

1.2 if选择结构案例

1.3 if...else...结构

1.4 if...elif...else多条件判断结构

1.5 if嵌套结构

🍔 综合案例:石头剪刀布

2.1 需求分析

2.2 代码实现

2.3 随机出拳

🍔 三目运算符

3.1 什么是三目运算符

3.2 基本语法

3.3 三目运算符案例

🍔 if选择判断结构作用

在日常开发中,只要有需要进行条件判断的语句基本上都是选择判断结构。

应用场景:

如果年龄大于等于18岁,则可以正常上网。

如果升级考试成绩大于60分,则可以顺利升级就业班。

1.1 if选择判断结构的基本语法

Java:

if (条件判断) {则执行某段代码...
}

但是Python中,不需要使用这么多复杂的符号,直接可以编写条件判断及执行某段代码

Python:

if 条件判断:则执行某段代码... print()

案例代码:

if True:print('条件成立执行的代码1')print('条件成立执行的代码2')
​
# 下方的代码没有缩进到if语句块,所以和if条件无关
print('我是无论条件是否成立都要执行的代码')

1.2 if选择结构案例

需求:定义一个变量age = 18,判断这个变量是否大于等于18岁,如果满足条件,则可以上网。

案例1:直接定义判断,进行条件判断

age = 18
if age >= 18:print('满足18岁要求,可以正常上网')

案例2:上网吧案例升级版

age = int(input('请输入您的年龄:'))
if age >= 18:print('满足18岁要求,可以正常上网')

if选择原理图:学编程除了会写代码还不行,还要回画图(流程图)

1.3 if...else...结构

基本语法:

if 条件判断:当条件判断为True时,则执行这个语句段
else:当条件判断为False时,则执行这个语句段

案例3:上网吧案例升级升级版,引入else

age = int(input('请输入您的年龄:'))
if age >= 18:print('满足18岁要求,可以正常上网')
else:print('不满足18岁要求,回家好好学习,天天向上')

if...else...结构原理图:

1.4 if...elif...else多条件判断结构

如果条件1成立,则执行语句段1

如果条件2成立,则执行语句段2

...

当所有条件都不成立时,则执行else语句段中的内容

if 条件判断1:如果此条件为True,则执行这个语句段
elif 条件判断2:如果此条件为True,则执行这个语句段
elif ...:...
else:如果以上所有条件判断都不满足时,则执行这个语句段

if多重条件判断原理图:

案例:

① 中国合法工作年龄为18-60岁,即如果年龄小于18的情况为童工,不合法;

② 如果年龄在18-60岁之间为合法工龄;

③ 大于60岁为法定退休年龄。

# 定义一个变量,接收用户输入的年龄
age = int(input('请输入您的年龄:'))
if age < 18:print('你还是一个童工,回去好好学习')
elif age >= 18 and age <=60:print('合法工龄,可以正常工作')
else:print('您已经达到了退休年龄,回家好好休息')

简写形式:

# 定义一个变量,接收用户输入的年龄
age = int(input('请输入您的年龄:'))
if age < 18:print('你还是一个童工,回去好好学习')
elif 18 <= age <= 60:print('合法工龄,可以正常工作')
else:print('您已经达到了退休年龄,回家好好休息')

1.5 if嵌套结构

基本语法:

if 外层条件判断:# 如果条件为True,则执行以下语句段if 内层条件判断:# 如果内层条件为True,则执行以下语句段
else:# 如果条件为False,则执行以下语句段

嵌套结构看起来异常复杂,但是我们在编写时要遵循一个原则:==先编写外层判断,所有语句编写完成后,在编写内层条件判断结构。==

案例:法律规定,车辆驾驶员的血液酒精含量小于 20mg/100ml 不构成酒驾;酒精含量大于或等于 20mg/100ml 为酒驾;酒精含量大于或等于 80mg/100ml 为醉驾。编写 Python 程序判断是否为酒后驾车。

proof = int(input('请输入驾驶员100ml血液中的酒精含量:'))
# 判断proof酒精含量是否小于20mg
if proof < 20:print('驾驶员不构成酒驾')
else:# 已经构成酒驾 => 两种类型(酒驾与醉驾)if proof >= 80:print('驾驶员已构成醉驾')else:print('驾驶员已构成酒驾')

🍔 综合案例:石头剪刀布

2.1 需求分析

参与游戏的角色有两个(玩家 与 电脑),玩家手工出拳,电脑随机出拳,根据石头剪刀布判断输赢。

玩家:player(玩家手工输入石头、剪刀、布)

电脑:computer(随机出拳)

输赢结果很重要,有三种情况:

① 玩家赢

☆ player:石头 赢 computer:剪刀

☆ palyer:剪刀 赢 computer:布

☆ player:布 赢 computer:石头

② 平局

只要player 与 computer出拳相等,就代表平局

③ 电脑赢

如果不满足以上两个条件,则电脑获胜!

未知知识点:如何让计算机随机出拳 => 随机

2.2 代码实现

确认:if...elif...else多条件分支结构

# 第一步:提示输入输入石头剪刀布,0-代表石头,1代表剪刀,2代表布
player = int(input('请输入您的出拳0-代表石头,1代表剪刀,2代表布:'))
# 第二步:电脑随机出拳(后续解决)
computer = 1
# 第三步:根据用户以及计算机的出拳判断输赢
# 什么情况,玩家会赢
# player==0且computer==1 或 palyer==1且computer==2 或 player==2且computer==0
if (player == 0 and computer == 1) or (player == 1 and computer == 2) or (player==2 and computer == 0):print('玩家获胜')
elif player == computer:print('平局')
else:print('电脑获胜')

遗留问题:计算机没办法随机出拳

2.3 随机出拳

Python语言非常的强大,强大之处就在于其拥有很多模块(module),这些模块中拥有很多别人已经开发好的代码,我们可以直接导入到我们的程序中即可使用。

==① import导入模块==

==② 通过模块.方法()调用相关功能==

随机出拳其实就是随机从0,1,2中选出一个数字

import random
​
​
# 调用内部封装的方法
computer = random.randint(0, 2)
改进猜拳代码:import random
​
​
# 第一步:提示输入输入石头剪刀布,0-代表石头,1代表剪刀,2代表布
player = int(input('请输入您的出拳0-代表石头,1代表剪刀,2代表布:'))
# 第二步:电脑随机出拳(后续解决)
computer = random.randint(0, 2)
​
print(computer)
​
# 第三步:根据用户以及计算机的出拳判断输赢
# 什么情况,玩家会赢
# player==0且computer==1 或 palyer==1且computer==2 或 player==2且computer==0
if (player == 0 and computer == 1) or (player == 1 and computer == 2) or (player==2 and computer == 0):print('玩家获胜')
elif player == computer:print('平局')
else:print('电脑获胜')

🍔 三目运算符

3.1 什么是三目运算符

在Python中三目运算符也叫三元运算符,其主要作用:==就是用于简化if...else...语句。==

3.2 基本语法

if 条件判断:# 语句段1
else:# 语句段2

转换为三目运算符:

语句段1 if 条件判断 else 语句段2

3.3 三目运算符案例

需求:输入两个数值,返回最大值

num1 = 10
num2 = 20
​
if num1 > num2:print(f'最大值为{num1}')
else:print(f'最大值为{num2}')

简化:三目运算符

num1 = 10
num2 = 20
​
max = num1 if num1 > num2 else num2
print(f'最大值为{max}')

 

💘若能为您的学习之旅添一丝光亮,不胜荣幸💘

🐼期待您的宝贵意见,让我们共同进步共同成长🐼

相关文章:

【Python】if选择判断结构详解:逻辑分支与条件判断

目录 &#x1f354; if选择判断结构作用 1.1 if选择判断结构的基本语法 1.2 if选择结构案例 1.3 if...else...结构 1.4 if...elif...else多条件判断结构 1.5 if嵌套结构 &#x1f354; 综合案例&#xff1a;石头剪刀布 2.1 需求分析 2.2 代码实现 2.3 随机出拳 &…...

邮件系统SSL加密传输,保护你的电子邮件免受网络威胁

在互联网的浪潮中&#xff0c;企业数字化转型的步伐不断加快。企业邮箱作为数字化应用的重要组成部分&#xff0c;已成为员工沟通、协同工作和企业管理的关键工具。但是在公共网络安全性普遍较弱的背景下&#xff0c;黑客容易侵入企业网络&#xff0c;监控流量&#xff0c;截获…...

Redis_写时复制(cow)

Redis会根据配置&#xff0c;每隔一段时间中对Redis服务中当下的数据集进行快照。配置自动生成rdb文件&#xff0c;后台使用的是bgsave方式。 save 60 1000 //关闭RDB只需要将所有的save保存策略注释掉即可Redis借助操作系统提供的写时复制技术&#xff08;Copy-On-Write, COW…...

【mysql进阶】4-5. InnoDB 内存结构

InnoDB 内存结构 1 InnoDB存储引擎中内存结构的主要组成部分有哪些&#xff1f; &#x1f50d; 分析过程 从官⽹给出的InnoDB架构图中可以找到答案 InnoDB存储引擎架构链接&#xff1a;https://dev.mysql.com/doc/refman/8.0/en/innodb-architecture.html ✅ 解答问题 InnoD…...

从零入门扣子Bot开发

从零入门扣子Bot开发 工作流简单介绍问题思考工作流实例 图像流简单介绍瘦脸图像流的设计创建图像流设计流程 总结参考链接 工作流简单介绍 工作流起源于生产组织和办公自动化领域&#xff0c;是指在计算机应用环境下&#xff0c;对业务过程的部分或整体进行自动化处理。它通过…...

中药是怎么计价的 复制药方文本划价系统操作教程

一、概述 【软件资源文件下载可以点文章最后卡片】 通过复制药方文本&#xff0c;快速划价并计算出总金额。 可以保存记录&#xff0c;如日期&#xff0c;客户名称&#xff0c;药方名称&#xff0c;金额等&#xff0c;便于查询统计或导出表格。 中药划价系统怎么收费 中药是…...

怎么做网站?

现代网站建设涵盖了多个方面&#xff0c;远不仅仅是简单的网站制作。如果您有兴趣创建网站或者想了解如何建立一个成功的网站&#xff0c;那么您需要了解众多与之相关的关键要素。本文将为您详细介绍这些要素。 选域名&#xff1a;域名是您网站的标识&#xff0c;因此选择一个…...

Centos Stream 9部署Zabbix7.0LTS

目录 1. 系统环境1.1 编辑配置文件/etc/yum.repos.d/epel.repo1.2 安装Zabbix存储库1.3 安装Zabbix server&#xff0c;Web前端&#xff0c;agent 2. MySQL/MariaDB 数据库2.1安装和配置 MySQL/MariaDB 数据库2.2 创建初始数据库2.3 导入初始架构和数据&#xff0c;系统将提示您…...

深入理解Allan方差:用体重数据分析误差的时间尺度与稳定性

文章目录 1. 什么是Allan方差&#xff1f;Allan方差的特点 2. Allan方差与传统方差的区别3. 用体重数据举例分析波动性场景A&#xff1a;体重变化较平稳场景B&#xff1a;体重变化波动较大 4. Allan方差的计算公式与详细步骤5. 不同时间块长度下的Allan方差计算场景A的Allan方差…...

Elasticsearch 解析:倒排索引机制/字段类型/语法/常见问题

Elasticsearch 是一个分布式的开源搜索引擎&#xff0c;广泛用于全文搜索、分析和数据存储。它基于 Apache Lucene 构建&#xff0c;支持 RESTful 风格的 API&#xff0c;使得开发者能够高效地存储和检索数据。本文将详细讲解 Elasticsearch 的基本原理&#xff0c;特别是其倒排…...

数字后端零基础入门系列 | Innovus零基础LAB学习Day5

###Module 12 RC参数提取和时序分析 数字后端零基础入门系列 | Innovus零基础LAB学习Day4 数字后端零基础入门系列 | Innovus零基础LAB学习Day3 数字后端零基础入门系列 | Innovus零基础LAB学习Day2 数字后端零基础入门系列 | Innovus零基础LAB学习Day1 ###LAB12-1 这个章节…...

Redis 内存回收策略小结

Redis 内存回收策略 及时回收内存中不需要的数据&#xff0c;能有效地保持性能和防止内存溢出。Redis内存回收主要有两种场景 删除过期的键值对内存使用达到maxmemory时触发回收策略 删除过期的键值对 惰性删除&#xff1a; 在查询时如果发现 该键值对已经过期则执行删除操作…...

React常用前端框架合集

React 是 Facebook 开发的一款用于构建用户界面的 JavaScript 库。由于其高效、灵活的特性&#xff0c;React 成为了目前最流行的前端框架之一。为了帮助开发者更好地利用 React 构建应用&#xff0c;市场上涌现了许多优秀的辅助工具和框架。本文将详细介绍几个常用的 React 前…...

python对文件的读写操作

任务:读取文件夹下的批量txt数据&#xff0c;并将其写入到对应的word文档中。 txt文件中包含&#xff1a;编号、报告内容和表格数据。写入到word当中&#xff1a;编号、报告内容、表格数据、人格雷达图以及对应的详细说明&#xff08;详细说明是根据表格中的标识那一列中的加号…...

Redis工具类(解决缓存穿透、缓存击穿)

文章目录 前言IBloomFilterObjectMapUtilsCacheClient使用示例具体业务的布隆过滤器控制层服务层 前言 该工具类包含以下功能&#xff1a; 1.将任意对象存储在 hash 类型的 key 中&#xff0c;并可以设置 TTL 2.将任意对象存储在 hash 类型的 key 中&#xff0c;并且可以设置…...

Air780E量产binpkg文件的获取方法

Air780E量产binpkg文件如何获取呢&#xff1f;操作方法如下。 一、背景 最近luatos开发客户增多&#xff0c;客户在量产烧录的时候需要binpkg文件&#xff0c;但是有些客户不知道binpkg文件是什么&#xff0c;在哪里获取&#xff0c;是否可以用soc文件提取出来&#xff0c;使…...

C++STL之stack

1.stack的使用 函数说明 接口说明 stack() 构造空的栈 empty() 检测 stack 是否为空 size() 返回 stack 中元素的个数 top() 返回栈顶元素的引用 push() 将元素 val 压入 stack 中 pop() 将 stack 中尾部的元素弹出 2.stack的模拟实现 #include<vector> namespace abc { …...

git的学习之远程进行操作

1.代码托管GitHub&#xff1a;充当中央服务器仓库的角色 2.git远程进行操作 3.配置本地服务器的公钥 4.推送 5.git远程操作 pull .gitignore 6.给命令配置别名 git config --global alias.st status 7.标签管理 git tag -a [name] -m "XXX" [commit_id] 操作标签…...

蓝桥杯普及题

[蓝桥杯 2024 省 B] 好数 题目描述 一个整数如果按从低位到高位的顺序,奇数位(个位、百位、万位……)上的数字是奇数,偶数位(十位、千位、十万位……)上的数字是偶数,我们就称之为“好数”。 给定一个正整数 N N N,请计算从 1 1...

Spreadsheet导出excel

记录下常用的方法 数字转字符&#xff1a;Coordinate::stringFromColumnIndex(27); 输出 AA字符转数字&#xff1a;Coordinate::columnIndexFromString(AA); 输出27设置单元格式 eg:(设置为保留两位小数点) $sheet->getStyle($columnLetter)->getNumberFormat()->set…...

后进先出(LIFO)详解

LIFO 是 Last In, First Out 的缩写&#xff0c;中文译为后进先出。这是一种数据结构的工作原则&#xff0c;类似于一摞盘子或一叠书本&#xff1a; 最后放进去的元素最先出来 -想象往筒状容器里放盘子&#xff1a; &#xff08;1&#xff09;你放进的最后一个盘子&#xff08…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

今天聊的内容&#xff0c;我认为是AI开发里面非常重要的内容。它在AI开发里无处不在&#xff0c;当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗"&#xff0c;或者让翻译模型 "将这段合同翻译成商务日语" 时&#xff0c;输入的这句话就是 Prompt。…...

工业安全零事故的智能守护者:一体化AI智能安防平台

前言&#xff1a; 通过AI视觉技术&#xff0c;为船厂提供全面的安全监控解决方案&#xff0c;涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面&#xff0c;能够实现对应负责人反馈机制&#xff0c;并最终实现数据的统计报表。提升船厂…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战

在现代战争中&#xff0c;电磁频谱已成为继陆、海、空、天之后的 “第五维战场”&#xff0c;雷达作为电磁频谱领域的关键装备&#xff0c;其干扰与抗干扰能力的较量&#xff0c;直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器&#xff0c;凭借数字射…...

SpringTask-03.入门案例

一.入门案例 启动类&#xff1a; package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...

今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存

文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...

【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制

使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下&#xff0c;限制某个 IP 的访问频率是非常重要的&#xff0c;可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案&#xff0c;使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...

比较数据迁移后MySQL数据库和OceanBase数据仓库中的表

设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...

R 语言科研绘图第 55 期 --- 网络图-聚类

在发表科研论文的过程中&#xff0c;科研绘图是必不可少的&#xff0c;一张好看的图形会是文章很大的加分项。 为了便于使用&#xff0c;本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中&#xff0c;获取方式&#xff1a; R 语言科研绘图模板 --- sciRplothttps://mp.…...

第7篇:中间件全链路监控与 SQL 性能分析实践

7.1 章节导读 在构建数据库中间件的过程中&#xff0c;可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中&#xff0c;必须做到&#xff1a; &#x1f50d; 追踪每一条 SQL 的生命周期&#xff08;从入口到数据库执行&#xff09;&#…...