开发者学堂课程【Python 入门 2020年版:If…elif 的使用】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/639/detail/10261
If…elif 的使用
If…elif…elif语句的使用
首先有个分数,第一部画数轴,左边为不及格,(在 if 语句和 if…elif 语句里分成两段)较中间为 60,右边为及格,这时用一个 if 语句即可。
程序:
score = float(input(‘请输入您的成绩:’))
if score >=60:
print(‘及格了’)
else:
print(‘不及格’)
在开发中可能会分成好几段。0~60 为不及格、60~80 为及格、80~90 为良好、90~100 为优秀。
score=float(input(‘请输入您的成绩:’))
#score: 67.0
#多个 if 语句,语句和语句之间,不存在关联
if 60 >score>=0:
#表示成绩在 0~60 之间
print(‘你个垃圾’)
if 80 >score>=60:
#表示成绩在 60~80 之间
print(‘一般般’)
if 90 >score>=80:
#表示成绩在 80~90 之间
print(‘还不错’)
if 100 >=score>=90:
#表示成绩在 90~100 之间
print(“好棒棒哟”)
运行结果:C: \Users\chris\AppData\Local\Program\Python\Python37\python.exe C:/Users/chris/Desktop/Python基础/Day04-流程
请输入您的成绩: 98
好棒哟Process finished with exit code 0
以上代码是正确的,但不是最优的。
因为它要每一层都需要判断。
代码调试的工具:
若想调试代码,点击左边灰色,点击一次哪里,哪里就会有红点。点击第二次,红点取消。右键 Debug 调试,也可点击小绿虫。(告诉程序走到哪里)
点击之后就会出现如下运行结果:(即表示代码停在第三行(蓝色),表示在这里加了断点,代码走到这里就会停。)C: \Users\chris\AppData\Local\Programs\Python\Python37python. exe "C: Program Files\JetBrains\PyCharm Communi
pydev debugger: process 2320 is connecting
Connected to pydev debugger (build 193 . 6015.41)
请输入您的成绩:67
如何让它走下一步?Console(表示输出的东西)点击 Step Over(下一步)代码将从第三行走到第六行,因为条件不成立,所以不走第四行。到达第六行,点击 Step Over,因为第七行满足条件,所以打印第七行。
所以单步运行后就会打印出一般般。如果往下是会接着走,但第九行和第十二行没有必要再走,因为刚才画的区间不存在重合,你的分数落在这个区间就不会落在后面的区间,所以后面的两个判断是多余的。
这个语句存在的问题:
如果你有多个 if,所有的if垒起来,这个公共点能够实现,但是它的判断不够好。多个if语句,语句和语句之间,不存在关联
#一个 if…elif 语句,有关联关系。
if 60 >score>=0:
print(‘你个垃圾’)
elif 80 >score>=60:
print(‘一般般’)
elif 90>score>=80:
print(‘还不错’)
elif 100>=score>=90:
print(‘好棒棒哟’)
else:
#不在范围内
print(‘你肮脏,你作弊!’)
调试一下,点击 Debugger ,现输入成绩为 76,因不满足 if 60 > score >=0: ,所以这一行不会走。就会走 elif 80 > score >=60: 这一行,因满足这一行的条件,就会打印一般般。
在单独运行,就会直接运行完了,这个运行就会少了很多。它是一个整个语句,走了一个分支,下面的分支就不再进行判断了。接着回到所画的数轴,最左边和最右边的区间没有画,若这时是 102,就要加 else:print (‘你肮脏,你作弊!’)
运行结果:C:Users chris AppDataLocallProgramsNPythonvPython37pythonexec:/users/chris/Desktop/Python 基础/Day04-流程
请输入您的成绩:-10
你肮脏,你作弊!Process finished with exit code 0