前言

作者简介:热爱跑步的恒川,致力于C/C++、Java、Python等多编程语言,热爱跑步,喜爱音乐的一位博主。
本文收录于Python零基础入门系列,本专栏主要内容为Python基础语法、判断、循环语句、函数、函数进阶、数据容器、文件操作、异常模块与包、数据可视化等,持续更新,请大家拭目以待恒川的专栏!
相关专栏C语言初阶、C语言进阶、恒川的日常汇报、大家有兴趣的可以看一看
Java等专栏正在发展,拭目以待!


有很多场景,不仅仅是多个并列条件,还会有满足前置条件才会二次判断的多层判断需求。
对这种需求,嵌套判断语句可以实现

Python的判断语句

  • 1. 判断语句的嵌套
  • 2. 简单嵌套
  • 3. 总结
  • 4. 实战案例

1. 判断语句的嵌套


许多逻辑的判断,是嵌套的,多层次的。
对于这种需求,我们可以:自由组合 if elif else,完成特定需求的要求
基础语法格式如下:

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

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

2. 简单嵌套

演示判断语句的嵌套使用

if int(input("你的身高是多少:")) > 120: # 1print("身高超出限制,不可以免费")print("但是,如果vip级别大于3,可以免费")if int(input("你的vip级别是多少:")) > 3: # 2print("恭喜你,vip级别达标,可以免费")else:print("Sorry 你需要买票10元")else:print("欢迎小朋友,免费游玩。")

如代码所示:

  • 判断有2层
  • 当外层if满足条件(代码编号1)时,才会执行内层if判断(代码编号2)
  • 当外层if(编号1)不满足,直接执行外层esle

自由组合嵌套,需求如下:
公司要发礼物,条件是:

  1. 必须是大于等于18岁小于30岁的成年人
  2. 同时入职时间需满足大于两年,或者级别大于3才可领取
age = 20year = 3level = 1if age >= 18:print("你是成年人")if age < 30:print("你的年龄达标了")if year > 2:print("恭喜你,年龄和入职时间都达标,可以领取礼物")elif level > 3:print("恭喜你,年龄和级别达标,可以领取礼物")else:print("不好意思,尽管年龄达标,但是入职时间和级别都不达标。")else:print("不好意思,年龄太大了")else:print("不好意思,小朋友不可以领取。")

代码结果:

你是成年人
你的年龄达标了
恭喜你,年龄和入职时间都达标,可以领取礼物

age = 11level = 1if age >= 18:print("你是成年人")if age < 30:print("你的年龄达标了")if year > 2:print("恭喜你,年龄和入职时间都达标,可以领取礼物")elif level > 3:print("恭喜你,年龄和级别达标,可以领取礼物")else:print("不好意思,尽管年龄达标,但是入职时间和级别都不达标。")else:print("不好意思,年龄太大了")else:print("不好意思,小朋友不可以领取。")

代码结果:

不好意思,小朋友不可以领取。

3. 总结

  1. 嵌套判断语句可以用于多条件、多层次的逻辑判断
  2. 嵌套判断语句可以根据需求,自由组合if elif else来构建多层次判断
  3. 嵌套判断语句,一定要注意空格缩进,Python通过空格缩进来决定层次关系

4. 实战案例

讲到这里我们的python判断语句就讲完了,让我们来个实战案例做做吧!
通过逻辑判断语句,完成猜数字的案例代码编写

案例需求:
定义一个数字(1~10,随机产生),通过3次判断来猜出来数字

案例要求:

  1. 数字随机产生,范围1-10
  2. 有3次机会猜测数字,通过3层嵌套判断实现
  3. 每次猜不中,会提示大了或小了

提示

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


演示判断语句的实战案例:终极猜数字

# 1. 构建一个随机的数字变量import randomnum = random.randint(1, 10)guess_num = int(input("输入你要猜测的数字:"))# 2. 通过if判断语句进行数字的猜测if guess_num == num:print("恭喜,第一次就猜中了")else:if guess_num > num:print("你猜测的数字大了")else:print("你猜测的数字小了")guess_num = int(input("再次输入你要猜测的数字:"))if guess_num == num:print("恭喜,第二次猜中了")else:if guess_num > num:print("你猜测的数字大了")else:print("你猜测的数字小了")guess_num = int(input("第三次输入你要猜测的数字:"))if guess_num == num:print("第三次猜中了")else:print("三次机会用完了,没有猜中。")

代码结果:

输入你要猜测的数字:5
你猜测的数字小了
再次输入你要猜测的数字:8
恭喜,第二次猜中了
再测一次代码
输入你要猜测的数字:1
你猜测的数字小了
再次输入你要猜测的数字:4
你猜测的数字大了
第三次输入你要猜测的数字:34
三次机会用完了,没有猜中。


如果这份博客对大家有帮助,希望各位给恒川一个免费的点赞作为鼓励,并评论收藏一下,谢谢大家!!!
制作不易,如果大家有什么疑问或给恒川的意见,欢迎评论区留言。