本篇文章给大家谈谈python中if后面一定要加else吗,以及python的if和else对应问题,希望对各位有所帮助,不要忘了收藏本站喔。
Source code download: 本文相关源码
基本结构
python中判断语句的基本结构由if和else组成,当if后面的条件为真时,执行if下面的语句;当if后面的条件为假时,执行else下面的语句。这里条件的真假都是用bool值来作为依据的,我们知道比较运算、成员运算、身份运算返回的结果都是bool值python怎么画拱形。所以比较运算、成员运算、身份运算都可以作为条件放到判断语句中去。
if 1 > 2:
print('yes') # 代码缩进为一个Tab键或者4个空格键
else:
print('no')
当我们只需要条件为真时执行某些语句,条件为假时不用执行语句。那我们可以只要if不要else。
if 1 < 2:
print('yes')
嵌套结构
嵌套结构由多重基本结构组成,每一重的if对应每一重的else(else可有可无,具体看需求)。嵌套结构可以无限的嵌套下去,但要注意的是很多的嵌套结构都可以用其他的方式来优化,我们写代码的时候尽量不要写太多重的嵌套结构,嵌套结构重数越多代码的可读性越差。
举个例子,现有3条线段a、b、c,请判断这三条线段能否构成三角形。三角形的判定方法:任意两边之和大于第三边。
a = int(input('请输入线段a的长度:'))
b = int(input('请输入线段b的长度:'))
c = int(input('请输入线段c的长度:'))
if a + b > c:
print('线段a + b大于c')
if a + c > b:
print('线段a + c大于b')
if b + c > a:
print('线段b + c大于a')
print('三条线段a、b、c可以构成三角形')
else:
print('线段a大于等于b + c,不能构成三角形')
else:
print('线段b大于等于a + c,不能构成三角形')
else:
print('线段c大于等于a + b,不能构成三角形')
执行结果如下:
我们可以随意的输入一些值来判断能否构成三角形,不同的输入可能会得到不同的输出。
多条件结构
多条件结构由if、elif和else组成。当if后面的条件为真时,执行if下面的语句;当if后面的条件为假时,判断第一个elif后面的条件,当第一个elif后面的条件为真时,执行第一个elif下面的语句;当第一个elif后面的条件为假时,判断第二个elif后面的条件,当第二个elif后面的条件为真时,执行第二个elif下面的语句;当第二个elif后面的条件为假时,判断第三个elif后面的条件,以此类推。如果所有的条件都为假时,执行else下面的语句(else可有可无,具体看需求)。
举个例子,我们来给小学生的数学成绩分等级,大于等于90分的为优秀,大于等于80分小于90分的为良好,大于60分小于80分的为一般,等于60分的为及格,小于60分的为不及格。
score = int(input('请输入分数:'))
if score > 100:
print('超范围')
elif score >= 90:
print('优秀')
elif score >= 80:
print('良好')
elif score >= 60:
print('一般')
elif score == 60:
print('及格')
else:
print('不及格')
执行结果如下:
逻辑运算符
使用逻辑运算符可以在一个判断语句中使用复杂的判断条件。
and | 做与运算,左右两边同时为真时结果为真,否则结果为假 |
or | 做或运算,左右两边同时为假时结果为假,否则结果为真 |
not | 做非运算,值为真时结果为假,值为假时结果为真 |
逻辑运算符(and)
左 | 右 | 结果 |
真 | 真 | 真 |
真 | 假 | 假 |
假 | 真 | 假 |
假 | 假 | 假 |
逻辑运算符(and)用来做与运算,当左右两边的值都为真时返回真,否者返回假。
print(1 < 2 and 5 > 4) # True
print(1 == 2 and 5 > 4) # False
print(1 == 2 and 5 == 4) # False
逻辑运算符(and)在判断语句中的应用,用一个判断语句完成能否构成三角形的判断。
a = int(input('请输入线段a的长度:'))
b = int(input('请输入线段b的长度:'))
c = int(input('请输入线段c的长度:'))
if a + b > c and a + c > b and b + c > a:
print('三条线段a、b、c可以构成三角形')
else:
print('三条线段a、b、c不能构成三角形')
执行结果如下:
逻辑运算符(or)
左 | 右 | 结果 |
真 | 真 | 真 |
真 | 假 | 真 |
假 | 真 | 真 |
假 | 假 | 假 |
逻辑运算符(or)用来做或运算,当左右两边的值都为假时返回假,否者返回真。
print(1 < 2 or 5 > 4) # True
print(1 == 2 or 5 > 4) # True
print(1 == 2 or 5 == 4) # False
逻辑运算符(or)在判断语句中的应用,判断小学生的数学成绩是否超出0~100的范围。
score = int(input('请输入分数:'))
if score > 100 or score < 0:
print('分数超出0~100的范围')
执行结果如下:
逻辑运算符(not)
值 | 结果 |
真 | 假 |
假 | 真 |
逻辑运算符(not)用来做非运算,当值为真时返回假,值为假时返回真。
print(not 1 < 2) # False
print(not 1 == 2) # True
print(not 1 > 2) # True
逻辑运算符(not)在判断语句中的应用,判断小学生的数学成绩是否超出0~100的范围。
score = int(input('请输入分数:'))
if not 0 <= score <= 100:
print('分数超出0~100的范围')
执行结果如下:
综合运用
现有3条线段a、b、c,请判断这三条线段能否构成三角形。如果能构成三角形,请判断构成的三角形是等边、等腰还是普通三角形。
a = int(input('请输入线段a的长度:'))
b = int(input('请输入线段b的长度:'))
c = int(input('请输入线段c的长度:'))
if a + b > c and a + c > b and b + c > a:
if a == b == c:
print('三条线段a、b、c能构成等边三角形')
elif a == b or a == c or b == c:
print('三条线段a、b、c能构成等腰三角形')
else:
print('三条线段a、b、c能构成普通三角形')
else:
print('三条线段a、b、c不能构成三角形')
执行结果如下: