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

news2025/1/11 4:21:49

今天我们来学习双向选择判断。顾名思义,双向就是两种选择选其一,即if----else。如果If的条件不成立,则执行else下的语句,否则执行if下面的语句。显然,它们是互斥的!下面就让我们来详细看看吧!


在这里插入图片描述


文章目录

  • 一、要点先知:
  • 二、基础讲解:
  • 三、拓展讲解:
    • 1. 空值:
    • 2. 非空:
    • 3 空值和非空的应用:
    • 4. 注意事项:
  • 四、刷题练习;
    • 1. 优化代码:
    • 2. Jack的行李费:
    • 3. 登陆账号:
    • 4. 报考飞行员:


一、要点先知:

  1. if 后面的语句是当判断条件成立时,需要执行的操作。

  2. else 后面的语句是判断条件不成立时,执行的操作。

    • else 之后使用冒号,表示后续缩进的代码块在判断条件不成立的时候会被执行。

缩进生成 else 内的代码块,这里我们还是空四格

👇让我们通过下面这两张图片再来巩固一下:

  • 第一种情况,程序运行到 if 判断时,如果条件为执行 if 的代码块。完成后,运行 if-else 后面的代码。
    在这里插入图片描述

  • 第二种情况,程序运行到 if 判断时,如果条件为,程序就直接跳开 if 判断的执行部分,运行 else 的代码块。完成后,运行 if-else 后面的代码。
    在这里插入图片描述

✨如果你已经有了一定的编程基础(比如C,C++,Java等等),相信第二部分的内容将对你作用不大,可以自行跳过,直接进入第三部分。


二、基础讲解:

if-else 语句有两个特性。

  • 第一,else 需与 if 搭配使用,它无法独立出现。

    • 必须先有 if,然后才能使用 else,否则程序就会报错。
  • 第二,if 与 else 成互斥关系。

    • 互斥关系也就是说,程序不会既执行 if 内的代码块,又执行 else 内的代码块。

else 是把 if 判断条件无法囊括的情况全部揽到了自己这里

在这里插入图片描述


三、拓展讲解:

在判断语句中,除了使用布尔表达式可以作为条件,还有其他的数据类型也可以作为判断条件。

myAge=20
if(myAge):
	# 执行相应的操作
else:
	# 执行相应的操作

想想为啥这个if条件是成立的?

  • 因为 myAge 被赋值了一个整型 20,所以它被判定为 True,于是程序继续执行了下一步代码。

在这里,变量myAge就是“非零非空”数据。

非零”这个概念比较好理解,数字 0 被判断为False,其他数字(包含正数和负数)都被判断为True

那非空又是啥意思呢?


1. 空值:

定义:空值,又叫 NULL 值,在 Python 中写作 None
(None 是关键字)

  • 它代表这个数值不是整型,不是字符串,不是浮点型,表示没有。
  • 隐喻:空值就像杯子里的空气,它指代的是杯子里什么都没有装。

⚠️注意:它和 0 不一样,因为 0 的值是 0,而空值的值是None。


2. 非空:

了解了“空值”后,“非空”就更好理解了。

定义:当一个变量里有值,并且这个值不是空值(None),我们就说这个变量“非空”

  • 非空值可以是整型、字符串、浮点型和布尔数。
  • 同时我们也把所有不是空值的值称为“非空值”。

隐喻:装有饮料的杯子。


3 空值和非空的应用:

布尔表达式和非零非空数据,都可以作为判断语句的条件。

在判断语句中,对非零值判断为真;对数字0的判断为假;对 None 的判断为假。

当我们在登录邮箱时,需要输入账号和密码。

账号和密码就是“非空”数据,如果输入正确就登录成功。

如果忘记输入密码,点击登录按钮,程序就会判断的密码为“空值”,就会提示你“密码不正确”。

这就是非空和空值最常见的场景。


4. 注意事项:

现在,我们就学习完了 if-else 语句。 同学们在刚接触 if-else 判断时,最容易出现以下两种 bug:

  1. 语法错误
    else 后面的冒号常常被遗漏,这是if-else的固定格式,有冒号程序才知道下面是 else 的代码块

  2. 缩进问题
    if 和 else 为互斥关系,else 的代码块需要通过缩进形成。为了保持风格统一,每个缩进用 4 个空格。


四、刷题练习;

1. 优化代码:

为了更快捷的写出代码,今天我们学习了如何使用 if-else 来优化程序。

下面我们就来试试吧,使用 if-else 来简化以下的代码:

a = -3
if a > 0:
    print("这个数字大于0")
if a <= 0:
    print("这个数字小于等于0")

示例代码如下:

a=-3
if a> 0 :
    print("这个数字大于0")
else :
    print("这个数字小于等于0")
    
    
    

2. Jack的行李费:

Jack要出国留学,带了三个行李,分别是 8.5 公斤,6 公斤,8 公斤。

飞机免费托运限额为 20 公斤,超出的部分每公斤交 20 元的运费,那么Jack需要交运费吗,如果需要的话交多少运费?

答案示例:
如果需要交运费则输出“需要交x元”
如果不需要交运费则输出“不需要补运费”

示例代码如下:

a=8.5
b=6
c=8
z=a+b+c
if z>20 :
    x=(z-20)*20
    print(f"需要交{x}元")
else :
    print("不需要补运费")
    



3. 登陆账号:

登录CSDN时需要输入账户名(username)和密码(password)。

现在路飞想要登录CSDN,账户名为"lufei",可是他忘记密码为"onepiece"。于是没有输入密码就点击了登录,请输出此时系统的提示。

系统的判定是这样的:
如果账户名和密码都正确,系统会提示“登录成功”;
否则,系统会提示“请输入正确的账号和密码”。

请编写代码模拟不同输入情况下系统的运行并输出路飞的系统提示结果。

示例代码如下:

username="lufei"
password=None
if username=="lufei" and password=="onepiece" :
    print("登录成功")
else :
    print("请输入正确的账号和密码")
   


4. 报考飞行员:

小夜的男同学今年20岁,身高175,他想要报考飞行员,飞行员的要求是年龄在17到27岁之间,身高在169到185之间,小夜的同学满足报考条件么?

示例代码如下:

age=20
height=175
if 17<=age<=27 and 169<=height<=185 :
    print("符合报考条件")
else :
    print("不符合报考条件")
    

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

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

相关文章

FastViT实战:使用FastViT实现图像分类任务(一)

文章目录 摘要安装包安装timm安装 grad-cam安装mmcv 数据增强Cutout和MixupEMA项目结构计算mean和std生成数据集补充一个知识点&#xff1a;torch.jit两种保存方式 摘要 论文翻译&#xff1a;https://wanghao.blog.csdn.net/article/details/132407722?spm1001.2014.3001.550…

国内 11 家通过备案的 AI 大模型产品

国内 11 家通过《生成式人工智能服务管理暂行办法》备案的 AI 大模型产品将陆续上线。 一、北京5家 1、百度的 “文心一言”https://yiyan.baidu.com 2、抖音的 “云雀”&#xff0c;基于云雀大模型开发的 AI 机器人 “豆包” 开始小范围邀请测试。用户可通过手机号、抖音或…

数据结构:栈的实现

1. 栈(Stack) 1.1 栈的概念 栈(Stack)是只允许在一端进行插入或删除操作的线性表.首先栈是一种线性表,但限定这种线性表只能在某一端进行插入和删除操作.进行数据插入和删除操作的一端叫栈顶,另一端称为栈底.栈中的元素遵循后进先出LIFO(Last In First Out)的原则 压栈:栈的插…

【论文投稿】图形学论文投稿去向

如果您想投稿关于网格几何处理的论文&#xff0c;以下是一些知名的学术会议和期刊&#xff0c;您可以考虑将您的研究成果提交到这些地方&#xff1a; 学术会议&#xff1a; SIGGRAPH&#xff1a;SIGGRAPH会议是计算机图形学领域最重要的会议之一&#xff0c;接收与图形学和交互…

力扣:86. 分隔链表(Python3)

题目&#xff1a; 给你一个链表的头节点 head 和一个特定值 x &#xff0c;请你对链表进行分隔&#xff0c;使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。 你应当 保留 两个分区中每个节点的初始相对位置。 来源&#xff1a;力扣&#xff08;LeetCode&#xff09;…

2023-9-4 快速幂

题目链接&#xff1a;快速幂 #include <iostream> #include <algorithm>using namespace std;typedef long long LL;LL qmi(int a, int k, int p) {LL res 1;while(k){if(k & 1) res (LL) res * a % p;k >> 1;a (LL) a * a % p;}return res; }int mai…

羊城杯2023 部分wp

目录 D0nt pl4y g4m3!!!(php7.4.21源码泄露&pop链构造) Serpent(pickle反序列化&python提权) ArkNights(环境变量泄露) Ez_misc(win10sinpping_tools恢复) D0nt pl4y g4m3!!!(php7.4.21源码泄露&pop链构造) 访问/p0p.php 跳转到了游戏界面 应该是存在302跳转…

如何高效的解析Json?

Json介绍 Json是一种数据格式&#xff0c;广泛应用在需要数据交互的场景Json由键值对组成每一个键值对的key是字符串类型每一个键值对的value是值类型(boo1值数字值字符串值)Array类型object类型Json灵活性他可以不断嵌套&#xff0c;数组的每个元素还可以是数组或者键值对键值…

Kubernetes v1.25.0集群搭建实战案例(新版本含Docker容器运行时)

k8s 1.24之后弃用了docker容器运行时&#xff0c;安装方式上有所不同&#xff0c;网上找到的大多数都是1.24之前的版本。所以把自己搭建的完整过程记录下来供大家参考。 一、前言 k8s的部署方式有多种kubeadm、kind、minikube、Kubespray、kops等本文介绍官方推荐的kubeadm的…

Python入门学习12

一、Python包 什么是Python包 从物理上看&#xff0c;包就是一个文件夹&#xff0c;在该文件夹下包含了一个 __init__.py 文件&#xff0c;该文件夹可用于包含多个模块文件。从逻辑上看&#xff0c;包的本质依然是模块 包的作用: 当我们的模块文件越来越多时,包可以帮助我们管…

arco-design-vue的tree组件实现右击事件

arco-design-vue的tree组件实现右击事件 业务中需要使用到tree组件&#xff0c;并且还要对tree实现自定义鼠标右击事件。在arco-design-vue的文档中&#xff0c;可以明确的看到&#xff0c;tree组件并没有右击事件的相关回调&#xff0c;那要如何实现呢&#xff1f;&#xff1f…

10 和为K的子数组

和为K的子数组 题解1 前缀和&#xff08;哈希表&#xff09;题解2 暴力枚举(没过) 给你一个整数数组 nums 和一个整数 k &#xff0c;请你统计并返回 该数组中和为 k 的 连续子数组的个数 。 示例 1&#xff1a; 输入&#xff1a;nums [1,1,1], k 2 输出&#xff1a;2示例…

字节二面:如果高性能渲染十万条数据?

前言 最近博主在字节面试中遇到这样一个面试题&#xff0c;这个问题也是前端面试的高频问题&#xff0c;作为一名前端开发工程师&#xff0c;我们虽然可能很少会遇到后端返回十万条数据的情况&#xff0c;但是了解掌握如何处理这种情况&#xff0c;能让你对前端性能优化有更深的…

【力扣每日一题】2023.9.4 序列化和反序列化二叉搜索树

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 题目给我们一棵搜索二叉树&#xff0c;要我们将这棵二叉树转变为字符串&#xff0c;同时我们需要根据字符串再变回二叉树&#xff0c;具体…

外贸开发信这么写,效果更好

很多小伙伴说好像现在无论是精准的发送开发信还是群发邮件&#xff0c;似乎效果都没有以往那么好&#xff0c; 虽然现在的开信已经从简单的纯文字书写改到了图文并茂&#xff0c;也从只介绍自己公司的产品实力晋升到对目标客户的分析探寻&#xff0c; 虽然找到了很多对口的邮…

智慧农旅数字农旅

智慧农旅|数字农旅|智慧文旅|智慧农旅平台|数字农旅平台|产业大脑|农业产业大脑|智慧农业|农业可视化|高标准农田|高标准产业园|数字农业大脑|大棚可视化|大棚物联管控|大棚数字孪生管控|大田物联管控|数字农业|数字乡村|数字乡村可视化|数字农业研学|数字大棚|智慧大棚|农业数…

RHCA之路---EX280(6)

RHCA之路—EX280(6) 1. 题目 Create an application greeter in the project samples which uses the Docker image registry.lab.example.com/openshift/hello-openshift so that it is reachable at the following address only: https://greeter.apps.lab.example.com (Not…

QTday1基础

作业 一、做个QT页面 #include "hqyj.h"HQYJ::HQYJ(QWidget *parent)//构造函数定义: QWidget(parent)//显性调用父类的有参构造 {//主界面设置this->resize(540,410);//设置大小this->setFixedSize(540,410);//设置固定大小this->setWindowIcon(QIcon(&q…

算法 数据结构 双向环形链表 手撸环形链表 环形链表实现容器 环形链表添加修改删除获取大小 环形链表实现自定义容器 手撸容器 双向环形哨兵链表 数据结构(六)

1. 环形链表&#xff1a; 2. 建议先不要看我写得自己先实现下&#xff0c;只将Node内部类复制自己命名得容器内&#xff0c; 实现方法&#xff1a; a. add方法&#xff08;添加到头部&#xff0c;尾部添加&#xff0c;指定位置添加&#xff09; b. get方法&#xff08;获取首部…

中小型ISR无人机海战场的运用与关键技术分析

源自&#xff1a;航空兵器 作者&#xff1a;温亮, 孙晓路, 卫国华, 吕建平, 王波 摘 要 关键词 无人机, 情报侦察监视, 海战场, 发射与回收, 自主控制, 任务载荷 引 言 1 国内外海上中小型无人机发展现状 表1 各国的部分中小型无人机 2 中小型ISR无人机在海战场的运用 2…