Python学习——【2.1】if语句相关语法

server/2024/9/20 2:54:18/ 标签: python, 学习

文章目录

  • 【2.1】if语句相关
    • 一、布尔类型和比较运算符
      • (一)布尔类型
      • (二)比较运算符
    • 二、if语句的基本格式
      • ※、练习
    • 三、if-else组合判断语句
      • ※、练习
    • 四、if-elif-else多条件判断语句
      • ※、练习
    • 五、判断语句的嵌套
    • ※、实战案例

【2.1】if语句相关

一、布尔类型和比较运算符

(一)布尔类型

  进行判断,只有两个结果:

  那么,在程序中,如何描述呢?

  使用:布尔类型。

image-20240916131440746

  布尔类型是数字类型下的一个小类。它有两个字面量,TrueFalse,分别表示真和假。之所以布尔类型被划分到数字类型下面,是因为True本质是一个数字1,False本质是一个数字0。

  布尔类型不仅可以自行定义,同时也可以通过计算得来,即通过比较运算符进行比较运算得到布尔类型的结果。

(二)比较运算符

  布尔类型的数据,不仅可以通过定义得到,也可以通过比较运算符进行内容比较得到。

python">result = 10 > 5
print(f"10 > 5 的结果是:{result},类型是:{type(result)}")result = "xiaoming" == "zhangsan"
print(f"字符串xiaoming是否和zhangsan相等?结果是:{result},类型是:{type(result)}")

输出结果如下:

10 > 5 的结果是:True,类型是:<class 'bool'>
字符串xiaoming是否和zhangsan相等?结果是:False,类型是:<class 'bool'>

image-20240916132327638

二、if语句的基本格式

  if判断语句语法如下:

if 要判断的条件:条件成立时,要做的事情

  当if后面要判断的条件为True时,if语句内的代码会被执行;当为False时,代码不会被执行。

  例如:

python"># 定义变量
age = 30# 进行判断
if age >= 18:print("我已经成年了")

  注意,在if语句内部,可以写任意多的代码,而不是只能写一行。但一定要注意,归属于if语句的代码块,其前方要正确进行缩进。

python">age = 18print(f"今年我已经{age}岁了。")if age >= 18:print("我已经成年了")print("即将步入大学生活")print("时间过得真快")

  当age为18时,输出结果如下:

今年我已经18岁了。
我已经成年了
即将步入大学生活
时间过得真快

  当age为10时,输出结果如下:

今年我已经10岁了。
时间过得真快

※、练习

案例:成年人判断

  结合前面学习的input输入语句,完成如下案例:

  1.通过input语句,获取键盘输入,为变量age赋值。(注意转换成数字类型)

  2.通过if判断是否是成年人,满足条件则输出提示信息,如下:

欢迎来到游乐场,儿童免费,成人收费。
请输入你的年龄:30
您已成年,游玩需要补票10元。
祝您游玩愉快。

我的代码

python">print("欢迎来到游乐场,儿童免费,成人收费。")
age = int(input("请输入你的年龄:"))if age >= 18:print("您已成年,游玩需要补票10元。")print("祝您游玩愉快。")

三、if-else组合判断语句

  if-else判断语法如下:

if 条件:满足条件时要做的事情1满足条件时要做的事情2满足条件时要做的事情3...
else:不满足条件时要做的事情1不满足条件时要做的事情2不满足条件时要做的事情3...

  例如:

python">print("欢迎来到游乐场,儿童免费,成人收费。")
age = int(input("请输入你的年龄:"))if age >= 18:print("您已成年,游玩需要补票10元。")
else:print("您未成年,可以免费游玩。")print("祝您游完愉快。")

  说明:

  1.if和其代码块,条件满足时执行;

  2.else搭配if,表示当不满足时执行;

  3.else不需要写判断条件,当与之搭配的if的条件不满足时,即else执行;

  4.else下的代码块,同样需要注意正确的缩进。

※、练习

案例:我要买票吗

  通过input语句获取键盘输入的身高。

  判断身高是否超过120cm,并通过print给出提示信息。

欢迎来到动物园。
请输入你的身高(cm):130
你的身高超过120cm,游玩需要购票10元。
祝您游玩愉快。
欢迎来到动物园。
请输入你的身高(cm):110
你的身高未超过120cm,可以免费游玩。
祝您游玩愉快。

我的代码

python">print("欢迎来到动物园")
height = int(input("请输入你的身高(cm):"))if height > 120:print("你的身高超过120cm,游玩需要购票10元。")
else:print("你的身高未超过120cm,可以免费游玩。")
print("祝您游玩愉快。")

四、if-elif-else多条件判断语句

  某些场景下,判断条件不止一个,可能有多个。

  if-elif-else多条件判断语法如下:

if 条件1:条件1满足时应该做的事情...
elif 条件2:条件2满足时应该做的事情...
elif 条件N:条件N满足时应该做的事情...
else:上面所有条件都不满足时应该做的事情...

  例如:

python">print("欢迎来到动物园。")
height = int(input("请输入你的身高(cm):"))
vip_level = int(input("请输入你的vip级别(1~5):"))
day = int(input("请输入今天的日期(1~31):"))if height < 120:print("您的身高小于120cm,可以免费游玩。")
elif vip_level > 3:print("您的vip级别大于3,可以免费游玩。")
elif day == 1:print("今天是1号免费日,可以免费游玩。")
else:print("不好意思,所有免票条件都不满足,您需要购票10元。")print("祝您游玩愉快。")

  判断是互斥且有顺序的,对于上述例子:

  1.从上到下,一旦有一个条件得到满足,就不再理会后续条件。比如,一旦满足条件1,就不再理会条件2和3。若不满足条件1,但满足条件2,则不再理会条件3。所有条件都不满足,才会进入else。

  2.else不是必须要写的,可以不写。

  另外,对于上面例子的代码,可以进一步简化一下,如下所示:

python">print("欢迎来到动物园。")if int(input("请输入你的身高(cm):")) < 120:print("您的身高小于120cm,可以免费游玩。")
elif int(input("请输入你的vip级别(1~5):")) > 3:print("您的vip级别大于3,可以免费游玩。")
elif int(input("请输入今天的日期(1~31):")) == 1:print("今天是1号免费日,可以免费游玩。")
else:print("不好意思,所有免票条件都不满足,您需要购票10元。")print("祝您游玩愉快。")

  这样写的好处在于:第一,不需要定义变量了,代码比较“简洁”;第二,由于“一旦有一个条件得到满足,就不再理会后续条件”的规则,所以某些情况下可以少做input操作。

※、练习

案例:猜数字

  1.定义一个变量,数字类型,内容随意。

  2.基于input语句输入猜想的数字,通过if和多次elif的组合,判断猜想数字是否正确。

请输入第一次猜想的数字:1
不对,再猜一次:2
不对,再猜最后一次:3
Sorry,全部猜错啦,我的数字是:10

我的代码

python">num = 10if int(input("请输入第一次猜想的数字:")) == num:print("恭喜你,猜对了。")
elif int(input("不对,再猜一次:")) == num:print("恭喜你,猜对了。")
elif int(input("不对,再猜最后一次:")) == num:print("恭喜你,猜对了。")
else:print(f"Sorry,全部猜错啦,我的数字是:{num}")

五、判断语句的嵌套

  有很多场景,不仅仅是多个条件并列的关系,还会有满足前置条件才会进行二次判断的多层判断需求。

  语法格式如下:

if 条件1:满足条件1时做的事情...if 条件2:满足条件2时做的事情...

  如上所示,对于第二个if,它位于第一个if的代码块内,因此只有当第一个if满足条件时,才会执行第二个if。

  嵌套的关键点,在于空格缩进。通过空格缩进,来决定语句间的层次关系

  例如:

python">print("欢迎来到动物园。")
if int(input("输入你的身高:")) > 120:print("你的身高大于120cm,不可以免费")print("不过如果你的vip等级高于3,可以免费游玩")if int(input("输入你的vip等级:")) > 3:print("你的vip等级大于3,欢迎你免费游玩。")else:print("Sorry,你需要补票10元。")
else:print("欢迎你免费游玩。")

  说明:

  1.嵌套判断语句可以用于多条件、多层次的逻辑判断;

  2.嵌套判断语句可以根据需求,自由组合if elif else来构建多层次判断;

  3.嵌套判断语句,一定要注意空格缩进,因为Python是通过空格缩进来决定层次关系的。

※、实战案例

案例需求

  定义一个数字(1-10,随机产生),通过3次判断来猜数字。

案例要求

  1.数字随机产生,范围1-10;

  2.有3次机会猜测数字,通过3层嵌套判断实现;

  3.每次猜不中,会提示大了或小了。

  提示,通过如下代码,可以定义一个变量num,变量内存储1-10随机数字。

python">import random
num = random.randint(1, 10)

代码

python"># 构建一个随机数字变量
import random
rand_num = random.randint(1, 10)guess_num = int(input("请输入你猜的数字:"))
if guess_num == rand_num:print("恭喜你,第一次就猜中了!")
else:if guess_num > rand_num:print("你猜的数字偏大了")else:print("你猜的数字偏小了")guess_num = int(input("请输入你猜的数字:"))if guess_num == rand_num:print("恭喜你,猜中了。")else:if guess_num > rand_num:print("你猜的数字偏大了")else:print("你猜的数字偏小了")guess_num = int(input("请输入你猜的数字:"))if guess_num == rand_num:print("恭喜你,在最后一次机会时猜中了。")else:print("仍然没有猜中,三次机会用完了,游戏结束。")

注:

  使用for循环或while循环能更好地实现这个需求。


http://www.ppmy.cn/server/119242.html

相关文章

非暴力沟通

非暴力沟通是一种有效的沟通方式&#xff0c;它可以帮助我们避免语言和行为上的暴力&#xff0c;提升人际关系的质量。这种沟通方式基于四个基本步骤&#xff1a;观察、感受、需要和请求。下面我们将详细探讨这四个步骤。 观察 观察是非暴力沟通的第一个步骤&#xff0c;它要…

Quartus sdc UI界面设置(二)

Quartus sdc设置 根据一配置quartus综合简单流程&#xff08;一&#xff09; 上次文章中&#xff0c;说了自己写sdc需要配置的分类点&#xff0c;这次将说明在UI界面配置sdc。 1. 在Quartus软件中&#xff0c;导入verilog设计之后&#xff0c;打开Tools/TimeQuest Timing Ana…

在网络环境中怎么保护个人信息安全?

在网络环境中保护个人信息安全非常重要&#xff0c;以下是一些基本的建议来帮助您保护自己的个人信息&#xff1a; 使用强密码&#xff1a;确保您的所有在线账户都使用强密码。强密码通常包含大写字母、小写字母、数字以及特殊字符&#xff0c;并且长度至少为12位以上。 启用双…

ASPICE培训:打造卓越的汽车软件开发能力

随着汽车行业的快速发展和智能化技术的不断演进&#xff0c;汽车软件开发已成为汽车制造过程中不可或缺的一部分。为了确保汽车软件的质量、可靠性和安全性&#xff0c;ASPICE&#xff08;Automotive SPICE&#xff09;作为一种国际公认的汽车软件开发过程评估标准&#xff0c;…

Docker安装 ▎Docker详细讲解 ▎数据卷挂载 ▎Nginx安装理解

前言 Docker是一种容器化技术&#xff0c;简化软件的部署和管理。文章详细解释了Docker的架构、安装步骤和常用命令&#xff0c;帮助用户快速启动和管理容器。还介绍了Docker镜像命令和数据卷挂载的实例&#xff0c;增强对持久化存储的理解&#xff0c;并涵盖了Nginx的安装方法…

红帽9中nginx-源码编译php

什么是PHP-FPM&#xff1f; PHP-FPM(FastCGI Process Manager&#xff1a; FastCGI进程管理器)是一个实现了Fastcgi的程序&#xff0c;并且提供进程管理的功能。 进程包括master进程和worker进程。master进程只有一个&#xff0c;负责监听端口&#xff0c;接受来自web server 的…

34.贪心算法1

0.贪心算法 1.柠檬水找零&#xff08;easy&#xff09; . - 力扣&#xff08;LeetCode&#xff09; 题目解析 算法原理 代码 class Solution {public boolean lemonadeChange(int[] bills) {int five 0, ten 0;for (int x : bills) {if (x 5) // 5 元&#xff1a;直接收下…

初次加载资源时无法正常加载,需要多次刷新、请求才能拿到资源的有效解决方案

初次加载资源时无法正常加载&#xff0c;需要多次刷新、请求才能拿到资源的有效解决方案 前言 在使用cloudinary进行图片上传并获取图片链接作为用户头像时发现&#xff0c;图片链接网址初次加载会报错&#xff1a;ERR_CONNECTION_RESET必须刷新几次才能获取到&#xff0c;原…

望繁信科技携流程智能解决方案亮相CNDS 2024新能源产业数智峰会

9月13日&#xff0c;CNDS 2024中国新能源产业数智峰会在北京圆满落幕。本次峰会以“走向数字新能源”为主题&#xff0c;汇聚了来自新能源领域的顶尖领袖、专家学者及知名企业代表&#xff0c;共同探讨数字化技术在新能源行业中的创新应用和发展趋势。上海望繁信科技有限公司&a…

计算机视觉硬件知识点整理(三):镜头

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、镜头的基础知识与类型二、镜头知识点总结&#xff1a;2.1 光圈2.2 景深2.3 调制传递函数&#xff1a;2.4 视场角2.5 焦距2.6 滤光片 前言 在这个信息化飞速…

1、vectorCast单元测试常用操作

一、自动创建测试工程 1、设置工作目录 进入软件主页面,点击file,选择set working directory,随便选择一个保存该项目的目录即可。 2、创建一个空工程 编译器选择vector自带的编译器,vectorCast MinGW C。 此时项目工程就创建好了 2.1、配置编译器节点 点击编译器节点…

如何使用Launch4J将我们jar包变成一个可执行文件exe

希望文章能给到你启发和灵感~ 如果觉得文章对你有帮助的话,点赞 + 关注+ 收藏 支持一下博主吧~ 阅读指南 开篇说明一、基础环境说明1.1 硬件环境1.2 软件环境二、Launch4J的安装下载三、如何进行配置和生成3.1 基础设置3.2 header设置3.3 jre设置四、常用功能界面大致介绍4.…

DevOps -分布式追踪与监控

DevOps中的分布式追踪与监控 在当今的DevOps环境中&#xff0c;随着微服务架构和云原生应用的广泛采用&#xff0c;系统复杂性显著增加&#xff0c;传统的监控方式已经无法满足现代分布式系统的需求。为了提高系统可观测性&#xff0c;分布式追踪和监控成为现代DevOps实践中至…

后端开发刷题 | 把数字翻译成字符串(动态规划)

描述 有一种将字母编码成数字的方式&#xff1a;a->1, b->2, ... , z->26。 现在给一串数字&#xff0c;返回有多少种可能的译码结果 数据范围&#xff1a;字符串长度满足 0<n≤90 进阶&#xff1a;空间复杂度 O(n)&#xff0c;时间复杂度 O(n) 示例1 输入&a…

微服务架构详解

微服务与SOA概述 SOA历史 SOA示例 微服务历史 SOA 被抛弃了么? 微服务与 SOA 剖析 SOA 架构剖析 ESB就是一个一个微服务的功能 ESB 功能举例 对象转换还有逻辑转换 很多东西都要在ESB里面处理 微服务剖析 把一个单体结构拆分多个小服务。为了让小服务之间通信方便&#x…

Android SPN/PLMN 显示逻辑简介

功能描述 当设备驻网后(运营商网络),会在状态栏、锁屏界面、下拉控制中心显示运营商的名称。 此名称来源有两种: 1、SPN(Service Provider Name) 2、PLMN (Public Land Mobile Name) 功能AOSP默认逻辑SPN提供SIM卡的运营商名称预置在SIM EF中,SIM卡发行运营商名称…

Python数据分析与可视化实战指南

在数据驱动的时代&#xff0c;Python因其简洁的语法、强大的库生态系统以及活跃的社区&#xff0c;成为了数据分析与可视化的首选语言。本文将通过一个详细的案例&#xff0c;带领大家学习如何使用Python进行数据分析&#xff0c;并通过可视化来直观呈现分析结果。 一、环境准…

算法入门-贪心1

第八部分&#xff1a;贪心 409.最长回文串&#xff08;简单&#xff09; 给定一个包含大写字母和小写字母的字符串 s &#xff0c;返回通过这些字母构造成的最长的回文串 的长度。 在构造过程中&#xff0c;请注意 区分大小写 。比如 "Aa" 不能当做一个回文字符串…

计算机毕业设计选题推荐-在线拍卖系统-Java/Python项目实战

✨作者主页&#xff1a;IT毕设梦工厂✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

24年蓝桥杯及攻防世界赛题-MISC-3

21 reverseMe 复制图片&#xff0c;在线ocr识别&#xff0c;https://ocr.wdku.net/&#xff0c;都不费眼睛。 22 misc_pic_again ┌──(holyeyes㉿kali2023)-[~/Misc/tool-misc/zsteg] └─$ zsteg misc_pic_again.png imagedata … text: “$$KaTeX parse error: Undefined…