|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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("查询结束")
复制代码 |
评分
-
查看全部评分
|