Python条件语句IF的语法格式
- Python条件语句IF简介
- 单条件判断,及格式
- 单独if……使用
- if……else配套使用
- 多条件判断语句的使用
- 嵌套语句的使用
- if……elif……语句的使用
- python的基本语法要求
Python条件语句IF简介
逻辑判断是计算机执行程序时不可缺少的一个环节,在逻辑用语中有一个比较基础的逻辑判断语式:如果…那么…
python编程语言中提供了if这个语句,if的意思就是如果,恰好契合了刚刚说到的如果…那么…的逻辑判断,那么if具体怎么个用法呢?
单条件判断,及格式
单独if……使用
单独使用if是可以对一个条件进行判断,条件为真时就会逐句执行跟随的指令或者语句,条件为假时结束if语句。
基本格式:
if 条件 :
语句1
语句2
语句3
……
简单讲,就是根据设定条件的真和假,来决定要不要执行“语句1、语句2、语句3、……”,可根据图例一加深理解:
设定的条件可以是字符、数字、表达式或者通过逻辑运算符连接的联合语句,
单独的字符、字符串和数字满足之前学习中的约定:空字符串和0为False,任意非空为True。
示例:和电脑猜谜,电脑随机把一件东西放在左手或者右手中,让你去猜。
# 提前给一个随机值提取语句
# 利用ramdom内的choice函数从元组tup里随机取的值赋值给x
import random
tup = ('左手', '右手')
x = random.choice(tup)
y = input('我已经放好了,猜猜我把东西放在哪知手里?')
# 判断玩家输入的值与电脑随机值是否相同,相同的话打印'恭喜你,猜对了!'
if y == x :
print('恭喜你,猜对了!')
print("再玩一次吧!!!")
连续运行三次的结果:
我已经放好了,猜猜我把东西放在哪知手里?左手
再玩一次吧!!!
我已经放好了,猜猜我把东西放在哪知手里?左手
再玩一次吧!!!
我已经放好了,猜猜我把东西放在哪知手里?左手
恭喜你,猜对了!
再玩一次吧!!!
也可以稍微再加强一点判断,提示玩家输入的值,只能是:“左手 或 右手”。
import random
tup = ('左手', '右手')
x = random.choice(tup)
# 人机交互,输入猜测答案
y = input('我已经放好了,猜猜我把东西放在哪知手里?')
# 用if判断输入的答案是不是'左手' or '右手',
if y != '左手' and y != '右手' :
print('只能猜“左手”或“右手”,不要乱.')
print("再玩一次吧!!!")
exit() # 没有输入左手或右手时,直接终止运行环境,结束程序运行。
# 判断玩家输入的值与电脑随机值是否相同,相同的话打印'恭喜你,猜对了!'
if y == x :
print('恭喜你,猜对了!')
print("再玩一次吧!!!")
连续运行五次的结果:
我已经放好了,猜猜我把东西放在哪知手里?右手
只能猜“左手”或“右手”,不要乱.
再玩一次吧!!!
我已经放好了,猜猜我把东西放在哪知手里?dfg
只能猜“左手”或“右手”,不要乱.
再玩一次吧!!!
我已经放好了,猜猜我把东西放在哪知手里?123
只能猜“左手”或“右手”,不要乱.
再玩一次吧!!!
我已经放好了,猜猜我把东西放在哪知手里?阿斯顿
只能猜“左手”或“右手”,不要乱.
再玩一次吧!!!
我已经放好了,猜猜我把东西放在哪知手里?左手
再玩一次吧!!!
if……else配套使用
通过上述示例,会发现作为if……在使用时主要是用来执行条件为真时的指令,没办法控制执行False时指令。
上例中,第一个if表面看着好像实现了false时的指令执行要求,但其实是利用if语句结束后,还会顺序执行后边指令来完成的。
这就不是很方便。
这时有了与if配套的else指令:
基本格式:
if 条件 :
语句1
……
else :
语句2
……
简单讲,就是根据设定条件的真和假,可以做选择了:是执行语句1,还是执行语句2,所以
if……else语句,可以称为条件判断后的可选择执行型语句。
过程可看图理解:
按照图中所示,根据条件判断,语句A和语句B两者间,A、B之间只执行其中一个,是二选一的关系:
- 执行A,就不会执行B
- 执行B,就不会执行A
上文中与电脑玩猜谜游戏的示例,可以改成if……else的语句执行:
import random
tup = ('左手', '右手')
x = random.choice(tup)
# 人机交互,输入猜测答案
y = input('我已经放好了,猜猜我把东西放在哪知手里?')
# 用if判断输入的答案是不是'左手' or '右手',
# if y != '左手' and y != '右手' :
# print('只能猜“左手”或“右手”,不要乱.')
# print("再玩一次吧!!!")
# exit()
if y == '左手' or y == '右手':
bo = x == y
else :
print('只能猜“左手”或“右手”,不要乱.')
print("再玩一次吧!!!")
exit()
# 判断玩家输入的值与电脑随机值是否相同,相同的话打印'恭喜你,猜对了!'
if bo == True :
print('恭喜你,猜对了!')
else :
print(f'很遗憾,没猜对!东西被我放在{x}里!')
print("再玩一次吧!!!")
运行结果(略),没做大的改动和优化,就是把else增加进去.
自己学习比对后觉得:增加了猜错时的单独输出。(关于这一点需求,如果不用else,只用if实现是比较麻烦的)
更简单的实现方式看后文
多条件判断语句的使用
嵌套语句的使用
嵌套的意思就像是套娃一样的一层套一层,层层叠加,与其说是中语句不如说是种指令应用的方法。
好像是建议嵌套的层数最好不要太多,具体是否暂时不确定,因为是自学的有些遗漏和经验没有老师教啊,慢慢来。
但我觉得应该是对的,因为我想起了开始学习Python时的两句格言:
Simple is better than complex. #简单胜于复杂
Flatt is better than nested. #扁平比嵌套好
综合一下:猜谜游戏,再改改:
import random
tup = ('左手', '右手')
x = random.choice(tup)
# 人机交互,输入猜测答案
y = input('我已经放好了,猜猜我把东西放在哪知手里?')
# 外层if判断输入的答案是否符合要求,只能是'左手' or '右手',
# 内层if判断是否猜对
if y == '左手' or y == '右手':
if x == y :
print('恭喜你,猜对了!')
else :
print(f'很遗憾,没猜对!东西被我放在{x}里!')
else :
print('只能猜“左手”或“右手”,不要乱.')
print("再玩一次吧!!!")
if……elif……语句的使用
老规矩还是先学习它的语法格式:
if 条件1 :
语句1
elif 条件2 :
语句2
elif 条件3 :
语句3
……
elif 条件n :
语句n
else: #可以不要,也可以要
语句(else)
这种语句使用的是一种扁平的方式,来对所给条件进行一一排查,按先后顺序进行所给条件的判断,如果判断为假就往后继续进行条件判断,直至判断为真时输出对应语句后结束。
如果所给的全部条件都为假,则结束。
就像你拿着一窜钥匙,去开一扇门,在不知道具体是哪把钥匙时,你只能一把钥匙一把钥匙的去尝试,直到找到能开门的那把钥匙为止。
看图理解:
至此,我们的猜谜游戏,又可以做一些修改,改为if……elif……的语句
import random
list1 = ('左手', '右手')
x = random.choice(list1)
# 人机交互,输入猜测答案
y = input('我已经放好了,猜猜我把东西放在哪知手里?')
# 逐句判断条件,当遇到真时输出对应语句,结束。
if y != '左手' and y != '右手' :
print('只能猜“左手”或“右手”,不要乱.')
elif y == x:
print('恭喜你,猜对了!')
else:
print(f'很遗憾,没猜对!东西被我放在{x}里!')
print("再玩一次吧!!!")
运行结果:略
看起来,简洁的多。
每种语法应该都有其突出的特点和更适用的时候,不要厚此薄彼就对了,学习中我的一大体会就是多看、多想、多比较。
python的基本语法要求
学习到这,不得不说一下python的语法规则,不难发现在本文中的代码书写中,有些地方代码前会留有部分空白,或者你在使用编辑器敲打代码时换行回车,编辑器也会自己帮你在下一行里缩进一段空白,这是为什么呢?
- 是为了排版整洁,便于阅读,但这不是最重要的
- 重要的是这种空白缩减是Python的规范语法之一
我以一种从属关系的方式去理解它
比如:我设定一个主语句if a > 100,那么当满足条件时执行的语句叫从属语句print(a),python中规定从属语句不能与主语句对齐,而且必须相较主语句往后缩进一定的空白,习惯上我们缩进的空白是四个英文符号状态下的空格,或者键盘上一个tab的距离
所以,代码的样子就成我们大家看到的这种
if a > 100
print(a)
print作为if的从属语句,往后缩进了四个空格。
所以,在敲打python代码时,一定要注意敲打语句的从属关系,并按规范缩进。