------------恢复内容开始------------
第2关-条件判断与条件嵌套
一、条件判断
条件判断:计算机沟通的逻辑——条件判断
作用:明确地让计算机知道:在什么条件下,该去做什么。
范例:《复仇者联盟3:无限宝石》
1 import time 2 3 print('如果你想拥有无限的力量和能量,那必须夺得力量宝石') 4 5 time.sleep(2) 6 7 print('如果你想扭曲时空和任意地传送,那必须夺得空间宝石') 8 9 time.sleep(2) 10 11 print('如果你想任意地修改现实,无视任何宇宙规律,那必须夺得现实宝石') 12 13 time.sleep(2) 14 15 print('如果你想到达任何一个时间点,无论是古老的年代还是遥远的未来,那必须夺得时间宝石') 16 17 time.sleep(2) 18 19 print('如果你想控制生者和死者的灵魂,那必须夺得灵魂宝石') 20 21 time.sleep(2) 22 23 print('如果你想拥有不朽的精神力量并操控任何人的思维,那必须夺得心灵宝石') 24 25 time.sleep(2) 26 27 print('那么,如果让你来选择的话,你想要获得哪颗宝石呢?') 28 29 time.sleep(2) 30 31 print('请在以下六个选项【1 力量宝石 ;2 空间宝石;3 现实宝石 ;4 时间宝石;5 灵魂宝石 ;6 心灵宝石;】中,选择你最想获得的宝石吧!') 32 33 time.sleep(3) 34 35 answer=input('请将对应数字输入在冒号后: ') 36 37 if answer=='1': 38 print('我告诉你哦,力量宝石保存在山达尔星的新星军团的总部基地') 39 time.sleep(3) 40 41 elif answer=='2': 42 print('空间宝石在洛基手里') 43 time.sleep(3) 44 45 elif answer=='3': 46 print('雷击已将现实宝石交给收藏家保管') 47 time.sleep(3) 48 49 elif answer=='4': 50 print('奇异博士愿意用时间宝石换取钢铁侠的性命') 51 time.sleep(3) 52 53 elif answer=='5': 54 print('必须献祭自己心爱的人才能得到灵魂宝石') 55 time.sleep(3) 56 57 else: 58 print('幻视头上的心灵宝石被绯红女巫摧毁,但可用时间宝石复原') 59 time.sleep(3)
1.单向判断:if
(1)范例
1 # 为宝石数量赋值 2 #用赋值运算符=对当前情况进行赋值:将你拥有的宝石个数6赋值给变量——宝石数stonenumber 3 stonenumber=6 4 5 # 条件:如果你拥有的宝石数量大于等于6个 6 #确定if条件:如果变量stonenumber的值>=个数6时,就执行冒号后,下一行的命令。 7 8 if stonenumber>=6: 9 10 #用print()命令打印出结果。 11 # 结果:显示‘你拥有了毁灭宇宙的力量’的结果 12 print('你拥有了毁灭宇宙的力量')
1 # 为宝石数量赋值 2 stonenumber=2 3 4 # 条件:如果你拥有的宝石数量大于等于6个 5 if stonenumber>=6: 6 7 #第一行的赋值语句【stonenumber=2】是后面if条件判断语句的前提情况,然而并不满足『stonenumber>=6』这个条件,所以不会执行条件下的『print』操作。 8 print('你拥有了毁灭宇宙的力量') 9 #计算机是一行行往下执行代码的。所以,当第一行赋值情况的前提不满足if的条件时,Python的逻辑就会判断:条件不满足,无法执行if条件下的命令,从而自动跳过,执行下一行命令。
(2)缩进
对于Python而言,冒号和缩进是一种语法。它会帮助Python区分代码之间的层次,理解条件执行的逻辑及先后顺序。【注:缩进是四个空格或一个Tab键】
并且,在if条件语言中,缩进不需要我们手动按空格键。当你用英文输入法打:后按回车,我们的开发工具(用来编写Python代码的程序)为了方便大家编程,会自动实现下一行代码,向右缩进的功能。
此时,被缩进的内容(print()函数)和if条件语句组成了一个代码块(一个整体),成为了if条件下的内部命令。
这意味着:如果赋值满足if条件,计算机就会准确执行if条件内部的命令(即缩进的代码块)。
(3)知识点
if语句的单向判断逻辑:
单向判断:if的代码逻辑及语法格式:
2.双向判断:if…else…
(1)范例
1 # 赋值语句:为宝石数量赋值 2 stonenumber=3 3 4 # 条件:如果你拥有的宝石数量大于等于6个 5 if stonenumber>=6: 6 7 # 结果:显示‘你拥有了毁灭宇宙的力量’的结果 8 print('你拥有了毁灭宇宙的力量') 9 10 # 条件:当赋值不满足if条件时,执行else下的命令 11 else: 12 13 # 结果:显示‘去找灵魂宝石’的结果 14 print('带着卡魔拉去沃弥尔星寻找灵魂宝石')
(2)知识点
在if...else条件语句中,if和else各自抱团,形成两个不同的代码块。表示的是条件和其他条件的互斥关系——如果不满足if条件,就执行else其他条件。
3.多向判断:if…elif…else…
(1)范例
1 # 为宝石数量赋值 2 stonenumber=5 3 4 # 条件:如果你拥有的宝石数量大于等于6个 5 if stonenumber>=6: 6 7 # 结果:显示‘就拥有了毁灭宇宙的力量’的结果 8 print('你拥有了毁灭宇宙的力量') 9 10 # 条件:如果想让宝石数量停留在5个以下,至少一个 11 elif 0<stonenumber<=5: 12 13 # 结果:显示‘绯红女巫需要亲手毁掉幻视额头上的心灵宝石’的结果 14 print('绯红女巫需要亲手毁掉幻视额头上的心灵宝石') 15 16 # 条件:当赋值不满足if和elif条件时,执行else下的命令,宝石数量为0个 17 else: 18 19 # 结果:显示‘需要惊奇队长逆转未来’的结果 20 print('需要惊奇队长逆转未来')
(2)知识点
二、if嵌套
1.范例
1 historyscore=26 2 3 if historyscore>=60: 4 print('你已经及格') 5 6 if historyscore>=80: 7 print('你很优秀') 8 9 else: 10 print('你只是一般般') 11 12 else: 13 print('不及格') 14 15 if historyscore<30: 16 print('学渣') 17 18 else: 19 print('还能抢救一下') 20 21 print('程序结束')
2.知识点
三、练习
1.偷回宝石
1 #他们一个宝石都没偷回来,为偷来的宝石stonenumber赋值为0。 2 stonenumber = 0 3 if stonenumber >= 4: 4 #如果偷回的宝石数是4颗及以上,输出结果:获得了打败灭霸的力量,反杀稳了 5 print('获得了打败灭霸的力量,反杀稳了') 6 elif stonenumber >= 1: 7 #如果偷回的宝石数是1-3颗,输出结果:可以全员出动,殊死一搏 8 print('可以全员出动,殊死一搏') 9 else: 10 #如果偷回的宝石数是0颗,输出结果:没办法了,只能尝试呼叫惊奇队长 11 print('没办法了,只能尝试呼叫惊奇队长')
2.美国队长的工资
1 salary = 1000 2 if salary <= 500: 3 #如果月工资小于等于500美元,显示“欢迎进入史塔克穷人帮前三名” 4 print('欢迎进入史塔克穷人帮前三名') 5 if salary <= 100: 6 # 如果月工资小于等于100美元,显示“恭喜您荣获“美元队长”称号!” 7 print('恭喜您荣获“美元队长”称号!') 8 else: 9 #如果月工资在100-500美元之间,显示“请找弗瑞队长加薪” 10 print('请找弗瑞队长加薪') 11 elif salary <= 1000: 12 #如果月工资在500-1000美元之间(含1000美元),打印“祝贺您至少可以温饱了。” 13 print('祝贺您至少可以温饱了。') 14 else: 15 #其他情况下,如果工资大于1000美元,打印“经济危机都难不倒您!” 16 print('经济危机都难不倒您!') 17 if salary <= 20000: 18 #如果工资在1000-20000美元(含20000美元)之间,打印“您快比钢铁侠有钱了!” 19 print('您快比钢铁侠有钱了!') 20 else: 21 #如果月工资大于20000美元,打印“您是不是来自于瓦坎达国?” 22 print('您是不是来自于瓦坎达国') 23 print('程序结束')