马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 一个账号 于 2020-3-4 20:42 编辑
Python FAQ 016 else 为什么被执行了
问题
这个程序执行完 if 之后执行了 else:
print("------------分数等级转换系统-----------")
x = int(input("请输入分数:"))
if 100 >= x > 90 :
print("您的等级是A")
if 90 >= x >= 80 :
print("您的等级是B")
if 80 > x >= 60 :
print("您的等级是C")
if 60 > x >= 0 :
print("您的等级是D")
else:
print("您输入的成绩无效,请检查。")
print("查询结束")
执行结果:
------------分数等级转换系统-----------
请输入分数:94
您的等级是A
您输入的成绩无效,请检查。
查询结束
解答
首先来回顾一下 if, elif 和 else:
(1) if-if 如果 if 成立,执行 if 的判断;如果 if 不成立,也执行第二个 if 的判断。
(2) if-elif-elif... 如果 if 成立,不执行 elif;如果 if 不成立,执行第一个 elif 的判断;如果第一个 elif 不成立,执行第二个 elif 的判断......
(3) if-elif-elif...-else 如果 if 成立,不执行 elif;如果 if 不成立执行第 1 个 elif 的判断;如果 第 1 个 elif 不成立,就执行第 2 个 elif...... 如果 if 和所有的 elif 都不成立,执行 else 里面的语句。
(4) if-else 如果 if 成立,不执行 else;如果 if 不成立,执行 else 里面的语句
前面几个 if 都是单独的,最后是 if-else,如果最后一个 if 不成立就执行 else。
那么怎么解决呢?我们可以用上面第 3 种情况把这些单独的条件变成一个整体。
最终代码如下:
print("------------分数等级转换系统-----------")
x = int(input("请输入分数:"))
if 100 >= x > 90 :
print("您的等级是A")
elif 90 >= x >= 80 :
print("您的等级是B")
elif 80 > x >= 60 :
print("您的等级是C")
elif 60 > x >= 0 :
print("您的等级是D")
else:
print("您输入的成绩无效,请检查。")
print("查询结束")
|