《人生苦短——我学Python》if条件判断->单向选择

news2024/11/25 11:57:13

今天我们来看看python中的条件判断。和C语言一样,python中条件判断的关键字也是if,并且判断的逻辑也是相同的,下面就让我们来详细看看吧!

关键词:if,代码块,缩进


在这里插入图片描述


文章目录

  • 一、要点先知:
  • 二、基础讲解:
    • 1. 定义:
    • 2. 关键字:
  • 三、刷题练习:
    • 1. 判断三角形
    • 2. BMI数值:
    • 3. 买手机:
    • 4. 长方形的面积:


一、要点先知:

if条件判断的基本形式如下所示:
在这里插入图片描述
⚠️简单的if判断有4个要点:

  • if关键字
  • 判断条件(里面该加括号的时候就加括号)
  • 英文冒号
  • (判断条件成立后的)执行内容前的缩进

✨如果你已经有了一定的编程基础(比如C,C++,Java等等),相信本文后面的内容将对你作用不大可以自行跳过,后面的内容主要争对于将python作为第一门编程语言的同学。


二、基础讲解:

判断在计算机世界里无处不在。

比如打开某个 App 时,程序会做一个是否已注册的判断。

  • 如果已注册(True),那么进入首页。如果未注册(False),那么进入注册页面。

1. 定义:

在编程语言中,可以用“判断语句”来处理这类判断问题。

  1. 定义:判断语句是程序的三大语句结构之一。
  2. 作用:根据判断的条件是否成立(真或假),来决定后续代码执行顺序。
  3. 隐喻:判断语句如同在岔路口做选择。不同的选择会带来不同的路径及结果
    在这里插入图片描述

在连续的多个 if 判断中,每一个 if 判断内都有一个代码块1(👈这是一个脚注footnote)

  • 只有当 if 条件成立时,程序才会执行这个 if 判断里面的代码块。

  • 如果条件不成立,程序就会跳开这个 if 判断,继续运行接下来的代码。在这里插入图片描述

1️⃣第一种情况,程序运行到 if 判断时,如果条件为真,则进入执行部分;完成后,程序接着运行 if 判断下面的代码。
在这里插入图片描述
2️⃣第二种情况,程序运行到 if 判断时,如果条件为假,程序就直接跳开 if 判断的执行部分,运行后面的代码。
在这里插入图片描述

由前文可知,满足 if 条件后执行的每行代码前都会有四个空格,这四个空格在 Python 中叫做“缩进2(👈点我!)

那我们在什么情况下,才需要缩进代码呢?

  • 在 Python 中,通过缩进来划分代码块

if 判断后面跟随条件,如果条件成立,程序执行归属于 if 判断的一个代码块。


在刚接触 if 判断时,最容易出现以下两种 bug:

  1. 缩进问题
    同一代码块缩进需要保持一致,建议每个缩进用4个空格。

  2. 语法错误
    if 判断中,布尔表达式后面的冒号常常被遗漏,这是判断语句的固定格式。


2. 关键字:

前面有提到 if 是关键字,那什么是关键字呢?

  • 关键字是 Python 中一些已经被赋予特定意义的单词,不能被用来作为变量名,函数名,类名等(函数和类后面的课程会讲到)。

下面是一些常见的关键字:

在这里插入图片描述
由于变量名区分大小写,所以if不能作为变量名,但 IF 、If、iF可以


三、刷题练习:

1. 判断三角形

已知一个三角形的边长分别为495,660,825。
判断这个三角形是否为直角三角形。
若是,则输出“是直角三角形”,若不是,则输出“不是直角三角形”。

  • 直角三角形的计算公式为:a * a+b * b=c * c

示例代码如下:

a=495
b=660
c=825
if a*a+b*b==c*c :
    print("是直角三角形")
else :
    print("不是直角三角形")
    

2. BMI数值:

现在有一个人身高1.8m,体重80kg,请先按照计算公式计算BMI指数。
体质指数(BMI)=体重(kg)÷(身高(m)*身高(m))
为了判断该BMI数值是否健康,根据以下判断条件打印出这个人的身体状况。
比如:
if BMI <= 18.5:
print(“过轻”)

  • 成年人的BMI数值:
    过轻:低于18.5(包括18.5)
    正常:18.5-24(包括24)
    过重:24-28(包括28)
    肥胖:28-32(包括32)
    非常肥胖:高于32

示例代码如下:

a=1.8
b=80
BMI=b/(a*a)
if BMI >32 :
    print("非常肥胖")
elif BMI >28 :
    print("肥胖")
elif BMI >24 :
    print("过重")
elif BMI >18.5 :
    print("正常")
else :
    print("过轻")
    


3. 买手机:

大学开学前,Jack想换一个白色的手机。但Jack预算只有6000元,那么在最新一代手机里,他能换哪款手机呢?
已知:
iphone12 = 7299 颜色为红色
xiaomi10 = 3699 颜色为白色
请编写程序判断手机的价格和颜色,输出 Jack 可以购买的手机型号
输出示例(手机型号全小写,按顺序输出):
可以购买xiaomi10

示例代码如下:

iphone12 = 7299 
xiaomi10 = 3699
a="红色"
b="白色"
if iphone12<6000 and a=="白色" :
    print("可以购买iphone12")
else:
    print("可以购买xiaomi10")
    


4. 长方形的面积:

第一个长方形的面积为 125 * 8,第二个长方形的面积为200*5。
比较两个长方形的面积,如果第一个大于第二个,输出"第一个长方形面积大";
如果第一个小于第二个,输出"第二个长方形面积大";
如果第一个与第二个一样,输出"面积一样大";

示例代码如下:

a=125*8
b=200*5
if a>b :
    print("第一个长方形面积大")
elif a==b :
    print("面积一样大")
else :
    print("第二个长方形面积大")
    


好了,今天的内容就到这里了,来简单回顾一下:我们今天学习了if条件判断,要注意它的4个关键点:if关键字,条件判断,冒号,缩进。
相信你已经掌握了呢~~,我们下期再见!
在这里插入图片描述

这是脚注👇:


  1. (1)连续缩进且空格数量相同(同一层级)的代码称为一个“代码块”。(2)在Python中,代码块是通过缩进来确定的,而不是使用花括号或其他分隔符。(3)通常使用四个空格或一个制表符进行缩进,并且同一代码块必须保持一致的缩进,否则会导致语法错误。(4)同一代码块中的代码需要遵守代码的默认执行顺序,即自上而下执行。 ↩︎

  2. (1)Python 中不同层级的代码之间强制要求缩进,并且相同层级的代码要求缩进的空格数量一致。(2)但是对于缩进的数量不做强制的要求,可以 1 个空格,可以 2 个空格。(一般每个缩进用 4 个空格,这是一种比较美观易读的代码风格。) ↩︎

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

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

相关文章

CSS中如何隐藏元素但保留其占位空间(display:nonevsvisibility:hidden)?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 隐藏元素但保留占位空间⭐ display: none;⭐ visibility: hidden;⭐ 总结⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&a…

@CacheEvict自动删redis缓存的注意事项

一、前言 今天遇到了一个问题&#xff0c;就是关于CacheEvict&#xff0c;这个相信大家都很熟悉了&#xff0c;是Spring整合一些缓存的专用注解&#xff0c;它和Cacheable是一对。一个是新增缓存一个是删除缓存&#xff0c;搭配使用&#xff0c;不用自己手动删除&#xff01; …

小白开始学习C++

第一节&#xff1a;控制台输出hello word&#xff01; #include<iostream> //引入库文件 int main() { //控制台输出 hello word! 之后回车 std::cout << "hello word!\n"; #include<iostream> //引入库文件int main() {//控制台输出…

国内首例 AIGC 作品纠纷,暂未宣判!

北京互联网法院近日依法公开开庭审理了一起 “AI 文生图” 著作权案。案件并未当庭宣判。 本案中&#xff0c;原告李先生是一名网络自媒体创作者&#xff0c;其通过某网络开源软件生成涉案图片&#xff0c;并以《春风送来的温柔》为题&#xff0c;发表在网络上。随后李先生发现…

基于Linux并结合socket网络编程的ftp服务器的实现

项目需求 客户端能够通过调用“get”指令&#xff0c;来获取服务器的文件客户端能通过“server_ls”指令&#xff0c;来获取服务器路径下的文件列表客户端能通过“server_cd”指令&#xff0c;进入服务器路径下的某文件夹客户端可以通过“upload”指令&#xff0c;上传自己的本…

SMB协议详解之-SMB/CIFS/SMB2/NFS/Samba/Netbios/NTLM/Kerberos关系和区别

SMB协议是在windows环境中非常常见的一中协议&#xff0c;在学习SMB协议的过程中经常出现SMB2&#xff0c;CIFS&#xff0c;Samba&#xff0c;Netbios&#xff0c;NTLM&#xff0c;kerberos等概念&#xff0c;如下下图1&#xff0c;那么SMB和这些观念之间的关系是什么呢。 在详…

linux入门到精通-第二章-常用命令和工具

目录 概述命令格式帮助文档内建命令外部命令&#xff08;--help&#xff09;帮助文档查看man查看谁登陆过电脑 文件目录命令创建目录显示目录结构删除目录 文件相关命令ls命令touchcprm删除mv移动命令 文件查看命令cat 文件内容查看命令less 查看文件内容head 从文件头部查看ta…

Spark大数据分析与实战笔记(第一章 Scala语言基础-3)

文章目录 1.3 Scala的数据结构1.3.1 数组数组的遍历数组转换 1.3.2 元组创建元组获取元组中的值拉链操作 1.3.3 集合ListSetMap 1.3 Scala的数据结构 对于每一门编程语言来说&#xff0c;数组&#xff08;Array&#xff09;都是重要的数据结构之一&#xff0c;主要用来存储数据…

C# OpenCvSharp 通道分离

效果 项目 代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using OpenCvSharp; using OpenCvSharp.Extensions;namespac…

栅栏状蚀刻铜箔上的掺氟碳量子点界面层

引言 由于其卓越的能量密度和长寿命&#xff0c;锂离子电池(LIBs)广泛用于电动设备&#xff0c;如军用无人机、电动车辆和动力辅助服&#xff0c;这些设备需要高重量或体积能量密度。然而&#xff0c;尽管在各种电动装置中使用&#xff0c;它们仍然具有关键的问题&#xff0c;…

达观RPA实战-自定义控件基础

一、应用背景 当标准控件和实际需求相差较大时,可以设计自定义控件。 或者有些通用功能,也可以做成自定义控件调用,如EXCEL文件表头填充 或者是有些标准控件实际运行会出错,无法解决,如FTP下载控件。 二、知识介绍 在开始开发自定义控件前,先简要介绍几个相关知识: …

C#,数值计算——Midsqu的计算方法与源程序

1 文本格式 using System; namespace Legalsoft.Truffer { public class Midsqu : Midpnt { private double borig { get; set; } 0.0; public new double func(double x) { return 2.0 * x * funk.funk(borig - x * x); } pub…

Mybatis 动态SQL – 使用if,set标签动态生成更新语句

上一篇我们介绍了使用Mybatis提供的if,where标签动态生成条件语句&#xff1b;本篇我们在上一篇的基础上介绍如何使用Mybatis提供的if,set标签动态生成更新语句。 如果您对if,where标签动态生成条件语句不太了解&#xff0c;建议您先进行了解后再阅读本篇&#xff0c;可以参考…

前端实现动态路由(后端返回权限路由)

实现思路 1、前端定义静态路由&#xff08;login登录页这种不需要权限的默认路由&#xff09; 2、用户登陆时调接口获取用户信息&#xff0c;然后登录到首页 3、前后端定义好路由返回的格式 4、在路由导航钩子beforeEach中去调接口获取动态路由&#xff0c;递归处理该数据为前…

AtCoder Beginner Contest 315 Ex. Typical Convolution Problem(分治NTT/全在线卷积)

题目 给定长为n(n<2e5)的序列a&#xff0c;第i个数ai(0<ai<998244353) 求序列f&#xff0c;满足式子如下&#xff1a; 思路来源 jiangly代码/力扣群友tdzl2003/propane/自己的乱搞 题解 分治NTT&#xff0c;考虑[l,mid]对[mid1,r]的贡献&#xff0c; 但是&#x…

RT-Thread I/O设备模型(二)

访问I/O设备 应用程序通过I/O设备管理接口来访问硬件设备&#xff0c;当设备驱动程序实现后&#xff0c;应用程序就可以访问该硬件。I/O设备管理接口与I/O设备的操作方法映射关系如下&#xff1a; 查找设备 应用程序根据设备名称获取设备句柄&#xff0c;进而操作设备。 rt_…

MybatisPlus基本配置查询操作

无侵入&#xff1a;只做增强不做改变&#xff0c;引入它不会对现有工程产生影响&#xff0c;如丝般顺滑损耗小&#xff1a;启动即会自动注入基本 CURD&#xff0c;性能基本无损耗&#xff0c;直接面向对象操作强大的 CRUD 操作&#xff1a;内置通用 Mapper、通用 Service&#…

手把手教你用Vite构建第一个Vue3项目

写在前面 在之前的文章中写过“如何创建第一个vue项目”&#xff0c;但那篇文章写的是创建vue2的 项目。 传送门如何创建第一个vue项目 打开Vue.js官网:https://cn.vuejs.org/&#xff0c;我们会发现Vue 2 将于 2023 年 12 月 31 日停止维护 虽然Vue2的项目还不少&#xff0…

day5 qt

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);timer_idthis->startTimer(100);//啓動一個定時器 每100ms發送一次信號ui->Edit1->setPlaceholderTex…

Leetcode:349. 两个数组的交集【题解超详细】

题目 给定两个数组 nums1 和 nums2 &#xff0c;返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。 难度&#xff1a;简单 题目链接&#xff1a;349.两个数组的交集 示例 1&#xff1a; 输入&#xff1a;nums1 [1,2,2,1], nums2 [2,…