当前位置: 首页 > news >正文

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

目录

前言

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("很遗憾,机会用完了,您未猜中")

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Spring Boot集成sentinel快速入门Demo
  • SQL之使用存储过程循环插入数据
  • OSPF笔记
  • 搭建高可用OpenStack(Queen版)集群(十一)之OpenStack集成ceph服务
  • opencv 多线程分块处理
  • FFmpeg源码:packet_alloc、av_new_packet、av_shrink_packet、av_grow_packet函数分析
  • 掌握NPM版本候选锁定:策略、实践与示例
  • 如果你懂开发,我真心劝你来试试网络安全
  • 自由职业四年,我整理了一些建议
  • 【数据结构】堆排序与TOP-K问题
  • Naive UI+vue一些组件的注意事项
  • element plus el-select修改后缀图标
  • 【双向链表】的建立、插入、删除、查找和销毁
  • 量化策略开发步骤系列(3)关键投资组合指标
  • firefly推理和微调qwen
  • 【附node操作实例】redis简明入门系列—字符串类型
  • Java 最常见的 200+ 面试题:面试必备
  • Node项目之评分系统(二)- 数据库设计
  • supervisor 永不挂掉的进程 安装以及使用
  • 阿里云前端周刊 - 第 26 期
  • 讲清楚之javascript作用域
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 聊聊sentinel的DegradeSlot
  • 排序(1):冒泡排序
  • 山寨一个 Promise
  • 学习笔记:对象,原型和继承(1)
  • 优化 Vue 项目编译文件大小
  • FaaS 的简单实践
  • ​浅谈 Linux 中的 core dump 分析方法
  • (07)Hive——窗口函数详解
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (3)(3.2) MAVLink2数据包签名(安全)
  • (3)STL算法之搜索
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第1节 (全局数据、栈和堆)
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (附源码)ssm高校运动会管理系统 毕业设计 020419
  • (附源码)基于SSM多源异构数据关联技术构建智能校园-计算机毕设 64366
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (转) RFS+AutoItLibrary测试web对话框
  • (转)创业的注意事项
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .NET 材料检测系统崩溃分析
  • .NET 服务 ServiceController
  • .Net程序帮助文档制作
  • .NET正则基础之——正则委托
  • @Autowired多个相同类型bean装配问题
  • @EnableConfigurationProperties注解使用
  • [ Algorithm ] N次方算法 N Square 动态规划解决
  • [ IOS ] iOS-控制器View的创建和生命周期
  • [ vulhub漏洞复现篇 ] Django SQL注入漏洞复现 CVE-2021-35042
  • [2016.7 day.5] T2
  • [20171113]修改表结构删除列相关问题4.txt
  • [20190113]四校联考