【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}')

 

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

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

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

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

相关文章

【数据结构】快速排序(三种实现方式)

目录 一、基本思想 二、动图演示&#xff08;hoare版&#xff09; 三、思路分析&#xff08;图文&#xff09; 四、代码实现&#xff08;hoare版&#xff09; 五、易错提醒 六、相遇场景分析 6.1 ❥ 相遇位置一定比key要小的原因 6.2 ❥ 右边为key&#xff0c;左边先走 …

redis详细教程(2.List教程)

List是一种可以存储多个有序字符串的数据类型&#xff0c;其中的元素按照顺序排列&#xff08;可以重复出现&#xff09;&#xff0c;可以通过数字索引来访问列表中的元素&#xff0c;索引可以从左到右或者从右到左。 Redis 列表可以通过两种方式实现&#xff1a;压缩列表&…

PVE 一键安装WIKI.js

Wiki.js 一个轻量的知识库管理工具 在PVE 的shell 下执行如下代码&#xff08;国内访问需自行调整&#xff09;&#xff0c;一键安装&#xff0c;默认使用了sqlLite 作为数据库&#xff1a; bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/wikijs…

电脑维修指南

1.输入法切换 1.右键悬浮窗 2.选择全拼 2.换壁纸 壁纸给你准备好了 https://wwyz.lanzoul.com/b00g2g2vyd 密码:da72浏览器下载解压, 然后就有了 右键, 挑选 3.清理垃圾 浏览器输入这个地址 https://wwyz.lanzoul.com/ijMin2di41ih普通下载 找一个喜欢的地方 右键, 解压 …

[SWPUCTF 2022 新生赛]py1的write up

开启靶场&#xff0c;下载附件&#xff0c;解压后得到&#xff1a; 双击exe文件&#xff0c;出现弹窗&#xff1a; 问的是异或&#xff0c;写个python文件来计算结果&#xff1a; # 获取用户输入的两个整数 num1 int(input("Enter the first number: ")) num2 int…

排序算法(冒泡,插入),希尔排序(插入升级),希尔排序和插入排序时间比较!

&#x1f381;个人主页&#xff1a;我们的五年 &#x1f50d;系列专栏&#xff1a;排序算法 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 一.冒泡排序&#xff1a; 时间复杂度&#xff1a;O&#xff08;N^2&#xff09;。 &#x1f3c4;‍♂️思路…

【Nas】X-DOC:搞机之PVE部署All In One(黑群晖NAS 软路由OpenWrt Docker Win10远程桌面)

【Nas】X-DOC&#xff1a;搞机之PVE部署All In One&#xff08;黑群晖NAS & 软路由OpenWrt & Docker & Win10远程桌面&#xff09; 1、原硬件配置清单&#xff1a;2、改AIO后增加配置清单&#xff1a;3、虚拟化平台PVE&#xff1a;4、搭建的关键服务&#xff1a; 1…

Web高级开发实验:EL基本运算符与数据访问

一、实验目的 掌握EL的定义&#xff0c;即Expression Language&#xff0c;用于提高编程效率。学习和掌握在开发环境中创建Java文件&#xff0c;并在jsp文件中使用EL表达式去调用其中的方法与属性等。 二、实验所用方法 上机实操 三、实验步骤及截图 1、创建javaweb项目&a…

Springboot项目中常用注解

文章目录 Springboot相关注解EnableAspectJAutoProxy(exposeProxy true)内部实现机制 EnableTransactionManagementServletComponentScanMapperScan(basePackages {"com.xxx.mapper"})ComponentScan(basePackages{"*"})lombok Data注解Controller中的相关…

jvm虚拟机介绍

Java虚拟机&#xff08;JVM&#xff09;是Java语言的运行环境&#xff0c;它基于栈式架构&#xff0c;通过加载、验证、准备、解析、初始化等类加载过程&#xff0c;将Java类文件转换成平台无关的字节码&#xff0c;并在运行时动态地将其翻译成特定平台的机器码执行。 JVM的核心…

基于SSM农业信息管理系统的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;农业技术管理&#xff0c;种植户管理&#xff0c;农产品类型管理&#xff0c;农资订单管理&#xff0c;系统管理 种植户账号功能包括&#xff1a;系统首页&#xff0c;个人中心&a…

01C++书写hello world、注释、变量、常量

#include <iostream> using namespace std; int main()//main为一个程序的入口&#xff0c;每个程序都必须仅有一个 { cout<<"hello world"<<endl; } //#输出结果为 //单行注释的符号 /* 多行注释的符号 */ //变量创建的语法&#xff1a;数据类…

OpenAI GPT-o1实现方案记录与梳理

本篇文章用于记录从各处收集到的o1复现方案的推测以及介绍 目录 Journey Learning - 上海交通大学NYUMBZUAIGAIRCore IdeaKey QuestionsKey TechnologiesTrainingInference A Tutorial on LLM Reasoning: Relevant methods behind ChatGPT o1 - UCL汪军教授Core Idea先导自回归…

shodan2---清风

注&#xff1a;本文章源于泷羽SEC&#xff0c;如有侵权请联系我&#xff0c;违规必删 学习请认准泷羽SEC学习视频:https://space.bilibili.com/350329294 实验一&#xff1a;search 存在CVE-2019-0708的网络设备 CVE - 2019 - 0708**漏洞&#xff1a;** 该漏洞存在于远程桌面…

offset Explorer连接云服务上的kafka连接不上

以上配置后报连接错误时&#xff0c;可能是因为kafka的server.properties配置文件没配置好&#xff1a; 加上面两条配置&#xff0c;再次测试连接&#xff0c;成功 listeners和advertised.listeners

C++的相关习题(2)

初阶模板 下面有关C中为什么用模板类的原因&#xff0c;描述错误的是? ( &#xff09; A.可用来创建动态增长和减小的数据结构 B.它是类型无关的&#xff0c;因此具有很高的可复用性 C.它运行时检查数据类型&#xff0c;保证了类型安全 D.它是平台无关的&#xff0c;可移植…

Vue.js 组件开发教程:从基础到进阶

Vue.js 组件开发教程:从基础到进阶 引言 在现代前端开发中,Vue.js 作为一款流行的 JavaScript 框架,以其简单易用和灵活性赢得了开发者的青睐。Vue 组件是 Vue.js 的核心概念之一,理解组件的开发和使用对构建复杂的用户界面至关重要。本篇文章将详细介绍 Vue.js 组件的开…

NFS练习

一、实验目的 1、开放/nfs/shared目录&#xff0c;供所有用户查询资料 2、开放/nfs/upload目录&#xff0c;为192.168.xxx.0/24网段主机可以上传目录&#xff0c; 并将所有用户及所属的组映射为nfs-upload,其UID和GID均为210 3、将/home/tom目录仅共享给192.168.xxx.xxx这台…

MySQL全文索引检索中文

MySQL全文索引检索中文 5.7.6版本不支持中文检索&#xff0c;需要手动修改配置 ft_min_word_len 1 &#xff0c;因为默认配置 4 SHOW VARIABLES LIKE ft%; show VARIABLES like ngram_token_size;配置 修改 MySQL 配置文件 vim /etc/my.cnf在配置的 [mysqld] 下面添加**ft_…

C++——string的模拟实现(上)

目录 引言 成员变量 1.基本框架 成员函数 1.构造函数和析构函数 2.拷贝构造函数 3.容量操作函数 3.1 有效长度和容量大小 3.2 容量操作 3.3 访问操作 (1)operator[]函数 (2)iterator迭代器 3.4 修改操作 (1)push_back()和append() (2)operator函数 引言 在 C—…