第3节课程大纲
一、条件判断与条件嵌套
1、条件判断
2、if嵌套
3、如何写嵌套代码
4、总结
一、条件判断与条件嵌套
1.1 条件判断
计算机沟通的逻辑——条件判断:明确地让计算机知道,在什么条件下,该去做什么
import time
print('''如果你想拥有无限的力量和能量,那必须夺得力量宝石
如果你想扭曲时空和任意地传送,那必须夺得空间宝石
如果你想任意地修改现实,无视任何宇宙规律,那必须夺得现实宝石
如果你想到达任何一个时间点,无论是古老的年代还是遥远的未来,那必须夺得时间宝石
如果你想控制生者和死者的灵魂,那必须夺得灵魂宝石
如果你想拥有不朽的精神力量并操控任何人的思维,那必须夺得心灵宝石
那么,如果让你来选择的话,你想要获得哪颗宝石呢?
请在以下六个选项【1 力量宝石 ;2 空间宝石;3 现实宝石 ;4 时间宝石;5 灵魂宝石 ;6 心灵宝石;】中,选择你最想获得的宝石吧!''')
answer=input('请将对应数字输入在冒号后: ')
if answer=='1':
print('我告诉你哦,力量宝石保存在山达尔星的新星军团的总部基地')
elif answer=='2':
print('空间宝石在洛基手里')
elif answer=='3':
print('雷击已将现实宝石交给收藏家保管')
elif answer=='4':
print('奇异博士愿意用时间宝石换取钢铁侠的性命')
elif answer=='5':
print('必须献祭自己心爱的人才能得到灵魂宝石')
elif answer=='6':
print('幻视头上的心灵宝石被绯红女巫摧毁,但可用时间宝石复原')
else:
print('请按要求填写哦')
1.1.1 单向判断:if
if xxxx:
#条件 #英文冒号
print(xxxx)
#自动缩进 #做点什么
命令逻辑:如果。。。就。。。
命令格式:if条件后跟英文冒号,回车后自动缩进
# 为宝石数量赋值
stonenumber=6
# 条件:如果你拥有的宝石数量大于等于6个
if stonenumber>=6:
# 结果:显示‘你拥有了毁灭宇宙的力量’的结果
print('你拥有了毁灭宇宙的力量')
#print前首行缩进四个空格或1个tab键,是一种语法,帮助python区分代码之间的层次,理解条件执行的逻辑及先后顺序
#被缩进的内容(print()函数)和if条件语句组成了一个代码块(一个整体),成为了if条件下的内部命令
1.1.2 双向判断:if…else…
if xxxx:
#条件 #英文冒号
print(xxxx)
#自动缩进 #做点什么
else:
#当if条件不满足时
print(xxxx)
#做点其他的什么
命令逻辑:如果不满足if的条件,就执行else下的命令
注意:if和else自身所代表的条件是互斥的
#前天晚上,酱酱无比纠结自己要不要吃夜宵,所以她打算上秤称一下,如果体重超过100斤,就不吃了,没有的话,就放心吃。结果……刚好101斤(泪目)……
# 要先为酱酱的体重赋值,酱酱的体重是101斤
weight=101
# 如果体重超过100斤的条件下,就……(条件后需加冒号)
if weight>100:
# 就打印结果:不吃了!(注意检查是否自动缩进)
print('不吃了')
# 如果体重没有超过100斤的条件,就……(else条件前无缩进,条件后需加冒号)
else:
# 就打印:放心吃吧(注意检查是否自动缩进)
print('放心吃吧')
#运行结果:不吃了
1.1.3 多向判断:if…elif…else…
- 命令逻辑:如果不满足if的条件,就判断是否满足elif下的的命令,满足执行,不满足执行else下的命令
- if,elif,else三者所代表的条件是互斥的
- elif后可不接else
#当宝石数量为0颗的时候,可以输出"需要惊奇队长逆转未来"
stonenumber=0
#为宝石数量赋值
if stonenumber>=6:
#条件:如果你拥有的宝石数量大于等于6个
print('你拥有了毁灭宇宙的力量')
#结果:显示‘就拥有了毁灭宇宙的力量’
elif 0<stonenumber<=5:
# 条件:如果想让宝石数量停留在5个以下,至少一个
print('绯红女巫需要亲手毁掉幻视额头上的心灵宝石')
#结果:显示‘绯红女巫需要亲手毁掉幻视额头上的心灵宝石’
# 条件:当赋值不满足if和elif条件时,执行else下的命令,宝石数量为0个
else:
print('需要惊奇队长逆转未来')
#结果:显示‘需要惊奇队长逆转未来’
1.2 if嵌套
1.3 如何写嵌套代码
扒洋葱式写法
- 写基础代码
- 写基础条件1的额外条件
- 写基础条件2的额外条件
historyscore=26
if historyscore>=60:
print('你已经及格')
if historyscore>=80:
print('你很优秀')
else:
print('你只是一般般')
else:
print('不及格')
if historyscore<30:
print('学渣')
else:
print('还能抢救一下')
print('程序结束')
1.4 总结
练习题:
请你写出一段代码,在一颗宝石都没偷回来的赋值下,进行条件判断,并产生对应的结果:
1.如果偷回的宝石数是4颗及以上,输出结果
获得了打败灭霸的力量,反杀稳了
2.如果偷回的宝石数是1-3颗,输出结果
可以全员出动,殊死一搏
3.如果偷回的宝石数是0颗,输出结果
没办法了,只能尝试呼叫惊奇队长
注意:标点符号都为英文格式
stonenumber=0
if stonenumber>=4:
print('获得了打败灭霸的力量,反杀稳了')
elif stonenumber>=1:
print('可以全员出动,殊死一搏')
else: #也可写作elif stonenumber==0:
print('没办法了,只能尝试呼叫惊奇队长')
练习题:
请你写出一段代码,判断美国队长的工资水平,代码需要满足如下条件:
1.如果月工资小于等于500美元,显示“欢迎进入史塔克穷人帮前三名”
1.1如果月工资在100-500美元之间,显示“请找弗瑞队长加薪”
1.2如果月工资小于等于100美元,显示“恭喜您荣获“美元队长”称号!”
2.如果月工资在500-1000美元之间(含1000美元),打印“祝贺您至少可以温饱了。”
3.其他情况下,如果工资大于1000美元,打印“经济危机都难不倒您!”
3.1如果工资在1000-20000美元(含20000美元)之间,打印“您快比钢铁侠有钱了!”
3.2如果月工资大于20000美元,打印“您是不是来自于瓦坎达国?”
4.不管赋值改变后输出结果如何,都需固定打印结果“程序结束”
salary=80
if salary<=500:
print('欢迎进入史塔克穷人帮前三名')
if salary>100:
print('请找弗瑞队长加薪')
else:
print('恭喜您荣获“美元队长”称号!')
elif salary<=1000:
print('祝贺您至少可以温饱了。')
else:
print('经济危机都难不倒您!')
if salary<=20000:
print('您快比钢铁侠有钱了!')
else:
print('您是不是来自于瓦坎达国?')
print('程序结束')
学习时间:2020年3月1日