当前位置: 首页 > 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…...

linux之kylin系统nginx的安装

一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源&#xff08;HTML/CSS/图片等&#xff09;&#xff0c;响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址&#xff0c;提高安全性 3.负载均衡服务器 支持多种策略分发流量…...

UDP(Echoserver)

网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法&#xff1a;netstat [选项] 功能&#xff1a;查看网络状态 常用选项&#xff1a; n 拒绝显示别名&#…...

基于数字孪生的水厂可视化平台建设:架构与实践

分享大纲&#xff1a; 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年&#xff0c;数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段&#xff0c;基于数字孪生的水厂可视化平台的…...

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月05日更新到&#xff1a; AI炼丹日志-28 - Aud…...

ServerTrust 并非唯一

NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...

聊一聊接口测试的意义有哪些?

目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开&#xff0c;首…...

蓝桥杯3498 01串的熵

问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798&#xff0c; 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

【Java学习笔记】BigInteger 和 BigDecimal 类

BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点&#xff1a;传参类型必须是类对象 一、BigInteger 1. 作用&#xff1a;适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...

sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!

简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求&#xff0c;并检查收到的响应。它以以下模式之一…...

Xen Server服务器释放磁盘空间

disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...