思考问题:100分制,90分以上为A,80-90为B,60-80为C,60以下为D,当用户输入成绩后,打印对应的字母
temp=input('请输入你的成绩:') score=int(temp) if 100 >= score >= 90: print('A') elif 90 > score >= 80: print('B') elif 80 > score >= 60: print('C') elif 60 > score >= 0: print('D') else: print('输入有误!')
很简单的小循环,可惜这缩进错误搞得我头疼啊...
小插曲--一般缩进错误肉眼难见,可以到notepad上设置一下便很好看出了,特别是缩进空格混用的情况
也可以使用Pycharm来运行,可知道具体哪行报错。
回归上题,elif=else if
也可以用比较直观的方法写出来,例如:
temp=input('请输入你的成绩:') score=int(temp) if 100 >= score >= 90: print('A') if 90 > score >= 80: print('B') if 80 > score >= 60: print('C') if 60 >=score >= 0: print('D') if score > 100 or score < 0: print('输入有误!')
两者的区别在于使用esif可以节省CPU时间,后者方法即使输入的数第一个if就能判断出来,也会把后面的if统统执行一遍才会打印结果
而esif在判断出来结果后不会执行后续判断
python可以有效避免悬挂esle
例如:
if(h1>2): if(h2>7): print() esle: print()
c语言的if--esle有就近原则。最后的esle会跟随第二个if进行条件判断
而python有严格的缩进规范,由代码缩进来决定else跟随哪个if来执行程序,从而从根源避免一些容易忽略的问题出现
pytho的三元操作符
语法: x if 条件 else y
当条件为True时输出x,当条件为False时输出的值为y
举例子:
x,y=4,5 if x<y: small=x else: small=y ### small= x if x<y else y
断言(assert)
当assert关键字后面的条件为假的时候程序会自动崩溃,并抛出AssertionError的异常
什么情况下会需要这样会自爆的代码呢??
一般来说我们可以用它在程序中置入检查点,需要确保程序中的某个条件一定为真才能让程序正常工作的话,assert关键字就非常有用了
成员资格运算符
Python 有一个成员资格运算符:in,用于检查一个值是否在序列中,如果在序列中返回 True,否则返回 False。