python从入门到精通:判断语句

news2024/11/26 8:50:02

目录

前言

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

2、if语句的基本格式

3、if else语句

4、if elif else语句

5、判断语句的嵌套

6、实战演练



前言

逻辑判断是生活中常见的行为。同样,在程序中,进行逻辑判断也是最为基础的功能。

 判断是程序最基础最核心的逻辑功能。

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

判断语句会产生两个结果:是或否,在程序中通过使用布尔类型来描述。

描述说明
布尔(bool)

布尔表示现实生活中的逻辑,即真(True)和假(False)

True本质上是数字1,False记作0

定义变量存储布尔类型数据:

变量名称=布尔类型字面量 

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

result = 10 >5
print("判断结果为%s,类型为{type(result)}")
# result_type = type(result);
# print("判断结果为%s,类型为%s" % (result, result_type))

 比较运算符:

运算符描述示例
==判断内容是否相等,满足返回True,反之返回False如3==3,返回True
!=判断内容是否不相等,满足返回True,反之返回False如1!=3,返回True
>

判断运算符左侧内容是否大于右侧

满足返回True,反之返回False

如7>3,返回True
<

判断运算符左侧内容是否小于右侧

满足返回True,反之返回False

如3<7,返回True
>=

判断运算符左侧内容是否大于等于右侧

满足返回True,反之返回False

如3>=3,返回True
<=

判断运算符左侧内容是否小于等于右侧

满足返回True,反之返回False

如3<=3,返回True

2、if语句的基本格式

程序中的判断

if 要判断的条件:

        执行内容

age = 20;
if age >= 18:
    print("成年人")
# 归属于if判断的代码语句块,需在前方填充4个空格缩进,python通过缩进来判断代码块的归属

 判断语句的结果,必须是布尔类型True或False,True会执行if内的代码语句,False则不会执行。

# 案例:手动输入年龄判断是否需要补票(注意类型转换)
print("欢迎来到游乐园,儿童免费,成人收费")
age = input("请输入你的年龄:")
age = int(age)
if age >= 18:
    print("您已成年,需要补票")
print("祝您游玩愉快!")

3、if else语句

if else语句可以实现在不满足条件的情况下执行对应的代码。

if 条件:

        执行内容1

        执行内容2

        ...

else:

        执行内容1

        执行内容2

        ...

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

 1、else之后,不需要判断条件

2、和if的代码块一样,else的代码同样需要4个空格作为缩进

# 案例:手动输入身高,判断是否超过120cm
print("欢迎来到动物园!")
height = int(input("请输入您的身高:"))
if height > 120:
    print("您的身高超过120cm,需要补票")
else:
    print("您的身高不足120cm,可以免费游玩")
print("祝您游玩愉快!")

4、if elif else语句

if elif else语句可以实现判断条件有多个的场景。

if 条件1:

        执行内容

elif 条件2:

        执行内容

...

elif 条件N:

        执行内容

else:

        所有条件都不满足时的执行内容

print("欢迎来到动物园!")
height = int(input("请输入您的身高:"))
vip_level = int(input("请输入您的VIP级别(1~5):"))
day = int(input("请输入今天的日期(1~30):"))
if height < 120:
    print("您的身高不足120cm,可以免费游玩")
elif vip_level > 3:
    print("您的VIP等级大于3,可以免费游玩")
elif day == 1:
    print("1号是欢乐日,可以免费游玩")
else:
    print("不好意思,您需要补票")
print("祝您游玩愉快!")
# elif判断语句可以有多个

 判断是互斥且有顺序的,空格缩进不能省略。

· 满足1条件将不会理会2和3

· 满足2,将不会理会3

· 1、2、3均不满足,进入else

· else也可以省略不写,效果等同于三个独立的if判断

# 猜心里数字
num = 10;
if int(input("请输入第一次猜想的数字:")) == num:
    print("第一次就猜对了")
elif int(input("不对,再猜一次:")) == num:
    print("恭喜你,猜对了!")
elif int(input("不对,最后再猜一次:")) == num:
    print("恭喜你,猜对了!")
else:
    print("全部都不对,我想的是:%d" % num)

5、判断语句的嵌套

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

许多逻辑的判断,是嵌套的,多层次的。

对于这种需求,我们可以:自由组合 if elif else 完成特定需求的要求

基础语法格式:

if 条件1:

        执行内容

        if 条件2:

                执行内容

如上图,第二个if内,只有第一个if满足条件,才会执行第二个if

嵌套语句的特点在于:空格缩进

通过空格缩进,来决定语句之间:层次关系 

print("欢迎来到动物园!")
height = int(input("请输入您的身高:"))
vip_level = int(input("请输入您的VIP级别(1~5):"))
if height > 120:
    print("你的身高大于120,不可以免费游玩")
    print("如果你的VIP等级高于3级可以免费")
    if vip_level > 3:
        print("您的VIP等级大于3,可以免费游玩")
    else:
        print("需要补票")
else:
    print("你可以免费游玩")
print("祝您游玩愉快!")
# 案例:公司发礼物需要满足条件:1、年龄大于等于18小于30的成年人 2、同时入职时间满足需满足大于两年,或者级别大于3才可以领取
age = int(input("年龄:"));
year = int(input("入职年限:"))
level = int(input("级别:"))
if age >= 18:
    if age < 30:
        print("年龄达标")
        if year > 2:
            print("年龄达标,且入职时间大于两年,可以领取礼物")
        elif level > 3:
            print("级别达标的成年人,可以领取礼物")
        else:
            print("入职时间和级别均不达标")
    else:
        print("年龄超标了")
else:
    print("未成年")

6、实战演练

# 随机产生一个数字范围再1~10,有三次判断机会,每次没猜到会提示大了或小了
# 产生一个随机数在
import random
num =random.randint(1,10)
# print(num)
guess_num = int(input("请输入您要猜测的数字:"))
# 通过if判断数字的猜测
if guess_num == num:
    print("恭喜你猜对了!")
else:
    if guess_num > num:
        print("猜大了!")
    elif guess_num < num:
        print("猜小了!")
    guess_num = int(input("再次输入您要猜测的数字:"))
    if guess_num == num:
        print("恭喜你猜对了!")
    else:
        if guess_num > num:
            print("猜大了!")
        elif guess_num < num:
            print("猜小了!")
        guess_num = int(input("第三次输入您要猜测的数字:"))
        if guess_num == num:
            print("恭喜你猜对了!")
        else:
            print("很遗憾,机会用完了,您未猜中")

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

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

相关文章

远程桌面工具企业版:Splashtop Enterprise

在当今全球化和数字化的商业环境中&#xff0c;远程工作和分布式团队合作成为了新常态。企业需要一种高效、安全的远程桌面解决方案&#xff0c;能够满足不断变化的业务需求&#xff0c;同时确保数据的安全性和员工的生产力。Splashtop Enterprise 是一款为企业量身定制的远程桌…

haproxy负载均衡之-调度算法详解

HAProxy的调度算法分为静态调度算法、动态调度算法和其他调度算法静态算法&#xff1a;按照事先定义好的规则轮询公平调度&#xff0c;不关⼼后端服务器的当前负载、链接数和响应速度等&#xff0c;且⽆法实时修改权重&#xff0c;只能靠重启HAProxy⽣效。动态算法&#xff1a;…

【NI-DAQmx入门】LabVIEW数据采集基础应用程序框架

对于可管理规模的 LabVIEW 程序&#xff0c;分析现有程序或设计新程序的方法通常是从整体到具体&#xff0c;即从高级到低级的分析和设计。从一开始就直接深入细节可能会效率较低。 在设计阶段&#xff0c;开发人员首先将程序垂直划分为几个层级。从最顶层开始&#xff0c;他们…

强化学习之Actor-Critic算法(基于值函数和策略的结合)——以CartPole环境为例

0.简介 DQN算法作为基于值函数的方法代表&#xff0c;基于值函数的方法只学习一个价值函数。REINFORCE算法作为基于策略的方法代表&#xff0c;基于策略的方法只学习一个策略函数。Actor-Critic算法则结合了两种学习方法&#xff0c;其本质是基于策略的方法&#xff0c;因为其目…

element时间段选择器或时间选择器 只设置默认起始时间或者结束时间,不显示问题

element时间段选择器或时间选择器 只设置默认起始时间或者结束时间&#xff0c;不显示问题 <div v-for"(item,index) in [a,b]":key"item"><el-date-pickerv-if"b"v-model"value1[item]"type"datetimerange"value-…

16s功能注释Bugbase的安装使用--本地版

文章目录 概述介绍下载安装程序下载并配置环境安装依赖R包并显示帮助运行示例数据Bug及解决方法-☆ 使用输入文件准备-☆下载Greengenes数据库在QIIME2中操作R语言操作 运行Bugbase 概述 Bugbase依赖于Greegenes1与R 但是R现已更新到4.4以上&#xff0c;安装R包时会不兼容且输…

【时时三省】(C语言基础)结构体初阶

山不在高&#xff0c;有仙则名。水不在深&#xff0c;有龙则灵。 ----CSDN 时时三省 结构体的声明 结构的基础知识: 结构是一些值的集合&#xff0c;这些值称为成员变量。结构的每个成员可以是不同类型的变量 数组: 是一组相同类型的元素的集合 结构体: 也是一些值得集合…

python-二进制?十进制?(赛氪OJ)

[题目描述] 给定两个十进制整数 : A&#xff0c;B。 你需要把它们的二进制形式以十进制的运算法则相加输出结果。 例如&#xff1a; A3 , B2的时候&#xff0c;A 的二进制表示是 : 11 , &#x1d435;B 的二进制表示是 10 &#xff0c;你需要输出答案为 : 21。 输入格式…

基于 Flutter 从零开发一款产品(一)—— 跨端开发技术介绍

前言 相信很多开发者在学习技术的过程中&#xff0c;常常会陷入一种误区当中&#xff0c;就是学了很多技术理论知识&#xff0c;但是仍做不出什么产品出来&#xff0c;往往学了很多干货&#xff0c;但是并无实际的用处。其实&#xff0c;不论是做什么&#xff0c;我们都需要从…

嵌入式linux系统镜像制作day1

点击上方"蓝字"关注我们 01、前言 嵌入式设备&#xff08;例如心电图检测仪&#xff0c;售票系统等&#xff09;。尽管&#xff0c;嵌入式设备像那些智能手机一样&#xff0c;绝大多数都使用同样的硬件和软件&#xff0c;包括系统芯片SoC、储存、连接和多媒体接口、…

Could not find artifact net.sf.json-lib:json-lib:jar

一开始我改了maven的setting&#xff0c;由官网变为阿里云仓库&#xff0c;最后还是不行 <dependency><groupId>net.sf.json-lib</groupId><artifactId>json-lib</artifactId><version>2.0</version><classifier>jdk15</cl…

freeRTOS任务通知(Task Notifications)

目录 前言 一、任务通知概述 1.优势及限制 2.通知状态和通知值 二、任务通知的使用 两类函数 1.xTaskNotifyGive/ulTaskNotifyTake 2.xTaskNotify/xTaskNotifyWait 三、传输计数值代码示例 四、传输任意值代码示例 前言 所谓"任务通知"&#xff0c;你可以反…

螺旋矩阵 | LeetCode-59 | LeetCode-54 | 分类讨论

&#x1f64b;大家好&#xff01;我是毛毛张! &#x1f308;个人首页&#xff1a; 神马都会亿点点的毛毛张 &#x1f383;分类不好&#xff0c;这道题就做不出来&#xff01;&#x1f388; &#x1f4cc;LeetCode链接&#xff1a;59. 螺旋矩阵 II &#x1f4cc;LeetCode链接…

李晨晨的嵌入式学习 DAY25

今天对昨天的fork函数进行了补充&#xff0c;并且学习了exec函数 一&#xff0c;fork函数补充 1.open在fork之前 子进程会继承父进程已打开的相关信息&#xff0c;父子进程会影响同一个offset值 2.open在fork之后 父子进程各自有各自打开的文件信息&#xff0c;不相互影响 …

Luatos-lua For MacOSX

0x00 缘起 看到Luatos-soc-pc项目能够编译到MacOS平台并且运行&#xff0c;所以尝试编译&#xff1b;可是Apple Clang编译器太过于严格&#xff0c;导致编译不通过。遂换到gcc-11编译通过&#xff0c;虽然其中依旧会报错&#xff08;宏定义LUA_USE_MACOSX不起作用&#xff0c;导…

Linux驱动入门实验班——LED驱动(附百问网视频链接)

目录 一、确定引脚编号 二、编写思路 2.1驱动层 2.2应用层 三、源码 四、实现 课程链接 一、确定引脚编号 首先&#xff0c;可以在开发板上执行如下命令查看已经在使用的GPIO状态&#xff1a; cat /sys/kernel/debug/gpio 可以看到每个gpio都有对应的编号&#xff0c;…

岗位信息采集全攻略:两种方法快速获取招聘信息

摘要 本文将揭秘两大实战策略&#xff0c;助你在激烈的人才市场中迅速捕捉前程无忧上的宝贵岗位信息&#xff0c;无论是手动搜索还是利用现代技术手段&#xff0c;都能事半功倍&#xff0c;抢占先机。 正文 一、手动搜索的艺术&#xff1a;精准定位&#xff0c;深度挖掘 1.…

【网络】传输层TCP协议的报头和传输机制

目录 引言 报头和有效载荷 确认应答机制 超时重传机制 排序和去重 连接管理机制 个人主页&#xff1a;东洛的克莱斯韦克-CSDN博客 引言 TCP是传输层协议&#xff0c;全称传输控制协议。TCP报头中有丰富的字段以及协议本身会制定完善的策略来保证网络传输的可靠性。 TCP…

ICM-20948芯片详解(12)

接前一篇文章&#xff1a;ICM-20948芯片详解&#xff08;11&#xff09; 六、寄存器详解 2. USER BANK 0寄存器详述 &#xff08;56&#xff09;FIFO_EN_1 参考代码&#xff1a; 无。 &#xff08;57&#xff09;FIFO_EN_2 ACCEL_FIFO_EN 1 —— 以采样率将ACCEL-XOUT_H、…

haproxy实例

什么是haproxy Haproxy是一款提供高可用性&#xff0c;负载均衡以及基于tcp和http的的应用交付控制器的开源软件。它由法国人威利塔罗使用c语言开发的。它广泛用于管理和路由网络流量&#xff0c;并确保应用程序的高可用性和高性能。 haproxy的功能 提供第4层&#xff08;TCP层…