Python学习笔记(5)-if判断、if嵌套、判断小练习
if判断
执行程序时根据不同的条件去做不同的事情就叫做判断
表现形式1:
if加上空格加上判断条件(判断条件一般会应用比较运算符或逻辑运算符)加上:(英文状态下的冒号),if下一行开始写上条件满足时做的事情(想写多少条写多少条)(行首代码前面有一个tab键),判断条件不满足时不做任何事情
if 判断条件:
条件满足时做的事情1
条件满足时做的事情2
条件满足时做的事情3
。。。
示例:定义一个年龄变量获取用户输入年龄,判断年龄,如果年龄大于18岁则打印已成年,可以去网吧了;已长大,可以穿西装了,如下两图:
图1:输入年龄为20岁,满足age>18岁条件,所以结果打印了已成年,可以去网吧了;已长大,可以穿西装了
图1
图2:输入年龄为15岁,不满足age>18岁条件,所以结果没打印任何内容
图2
表现形式2:
if加上空格加上判断条件(判断条件一般会应用比较运算符或逻辑运算符)加上:(英文状态下的冒号),if下一行开始写上条件满足时做的事情(想写多少条写多少条)(行首代码前面有一个tab键),条件满足时做的事情写完后在下一行顶格写上else:(英文状态下的冒号),在else下一行开始写上条件不满足时做的事情(想写多少条写多少条)(行首代码前面有一个tab键)
if 判断条件:
条件满足时做的事情1
条件满足时做的事情2
条件满足时做的事情3
。。。
else:
条件不满足时做的事情1
条件不满足时做的事情2
条件不满足时做的事情3
。。。
示例:定义一个年龄变量获取用户输入年龄,判断年龄,如果年龄大于18岁则打印已成年,可以去网吧了;已长大,可以穿西装了,如果年龄不大于18岁则打印年纪还小,过几年再来上网吧;还不够成熟,过几年再穿西装,如下两图:
图1:输入年龄为20岁,满足age>18岁条件,所以结果打印了已成年,可以去网吧了;已长大,可以穿西装了
图1
图2:输入年龄为15岁,不满足age>18岁条件,所以结果打印了年龄还小,过几年再来上网吧;还不够成熟,过几年再穿西装
图2
表现形式3:
if加上空格加上判断条件1(判断条件一般会应用比较运算符或逻辑运算符)加上:(英文状态下的冒号),if下一行开始写上条件1满足时做的事情(想写多少条写多少条)(行首代码前面有一个tab键),条件1满足时做的事情写完后在下一行顶格写上elif加上空格加上判断条件2(判断条件一般会应用比较运算符或逻辑运算符)加上:(英文状态下的冒号),elif下一行开始写上条件2满足时做的事情(想写多少条写多少条)(行首代码前面有一个tab键),依次类推
if 判断条件1:
条件1满足时做的事情1
条件1满足时做的事情2
条件1满足时做的事情3
。。。
elif 判断条件2:
条件2满足时做的事情1
条件2满足时做的事情2
条件2满足时做的事情3
。。。
elif 判断条件3:
条件3满足时做的事情1
条件3满足时做的事情2
条件3满足时做的事情3
。。。
。。。
执行顺序:判断条件1不满足时判断判断条件2,判断条件2满足时执行条件2满足时做的事情,且不会继续判断判断条件3,判断条件2不满足时再去判断判断条件3,依次类推
示例:定义一个数字变量获取用户输入数字,判断数字,如果数字等于1打印今天是星期一;今天天气不错,如果数字等于2打印今天是星期二;今天有雨,如果数字小于等于5打印工作日,仍需要工作;在等几天才可以休息,如下图:
如图所示:输入数值2,不满足num==1,所以未打印今天是星期一;今天天气不错,满足num==2,所以打印今天是星期二;今天有雨,虽然同样满足num<=5,但是elif判断语句如果判断条件成立了就不会再匹配下一个elif判断条件
表现形式4:
if加上空格加上判断条件1(判断条件一般会应用比较运算符或逻辑运算符)加上:(英文状态下的冒号),if下一行开始写上条件1满足时做的事情(想写多少条写多少条)(行首代码前面有一个tab键),条件1满足时做的事情写完后在下一行顶格写上elif加上空格加上判断条件2(判断条件一般会应用比较运算符或逻辑运算符)加上:(英文状态下的冒号),elif下一行开始写上条件2满足时做的事情(想写多少条写多少条)(行首代码前面有一个tab键),依次类推,最后一个elif条件满足时做的事情写完后,在下一行顶格写上else:(英文状态下的冒号),在else下一行开始写上以上条件都不满足时做的事情(想写多少条写多少条)(行首代码前面有一个tab键)
if 判断条件1:
条件1满足时做的事情1
条件1满足时做的事情2
条件1满足时做的事情3
。。。
elif 判断条件2:
条件2满足时做的事情1
条件2满足时做的事情2
条件2满足时做的事情3
。。。
elif 判断条件3:
条件3满足时做的事情1
条件3满足时做的事情2
条件3满足时做的事情3
。。。
else:
条件1,2,3都不满足时做的事情1
条件1,2,3都不满足时做的事情2
条件1,2,3都不满足时做的事情3
。。。
示例:定义一个数字变量获取用户输入数字,判断数字,如果数字等于1打印今天是星期一;今天天气不错,如果数字等于2打印今天是星期二;今天有雨,如果数字不是1或者2打印星期几我也不知道;可能数字输错了,如下图:
如图所示:输入数字10,由于既不满足num==1也不满足num==2,所以未打印今天是星期一;今天天气不错,今天是星期二;今天有雨,最终打印星期几我也不知道;可能数字输错了
if嵌套
当一个条件判断是否成立是在另一个判断条件成立的前提下的表现形式叫做if嵌套
表现形式:
条件1满足时才会判断条件2,条件2满足时则做条件2满足时做的事情,条件2不满足时则做条件2不满足时做的事情,条件1不满足时候直接做条件1不满足时做的事情,不会判断条件2是否满足
if 判断条件1:
条件1满足时做的事情
if 判断条件2:
条件2满足时做的事情
else:
条件2不满足的时候做的事情
else:
条件1不满足的时候做的事情
示例:定义一个天气变量获取用户输入数值(1为晴天,2为雨天),判断天气,如果天气是晴天就出门逛商场,在判断商场里是否还有冰淇淋(1为有),有就打印可以吃冰淇淋,没有就打印商场冰淇淋卖没了,没有冰淇淋吃,如果天气是雨天就打印下雨天不打算出门,如下三图:
图1:常见错误写法,明明是下雨天不出门却还去商场吃冰淇淋,下图先判断天气是晴天还是雨天,我们输入了数值2因此if 天气判断不成立,执行了else打印了下雨天不打算出门,然后在判断商场是否有冰淇淋,因为变量固定了值为1,所以判断条件成立,打印了去商场吃冰淇淋,这里的主要错误是无论判断的天气是否是晴天,都会判断商场里是否有冰淇淋,实际情况是若是雨天则不必在判断商场是否有冰淇淋,因为你都不出门肯定吃不到
图1
图2:正确写法,先判断是晴天还是雨天,下图输入的数值是1因此外层if判断条件成立,打印天气晴朗,可以出门逛街,在去判断内层if判断条件(商场是否有冰淇淋),因为变量固定了值为1,所以判断条件成立,打印了去商场吃冰淇淋
图2
图3:正确写法,先判断是晴天还是雨天,下图输入的数值是2因此是雨天,由于外层if判断条件不成立所以执行外层else,打印下雨天不打算出门,且不会判断内层if,也就是不会判断商场里是否有冰淇淋
判断小练习
小游戏:剪刀、石头、布
说明:为了电脑每次能够随机打出剪刀、石头、布,引入random模块(暂时理解为工具箱),random模块下有个功能random.randint(1,3)含义是每次打出1到3中的随机一个数
练习目的:练习判断条件与比较运算符或逻辑运算符组合应用
思路:定义一个变量获取玩家输入的数值(如1代表剪刀、2代表石头、3代表布),再定义一个变量获取系统输入的数值,然后分别判断玩家赢、平局、输的条件,最终将结果打印出来,如图: