·条件语句
笔记:
If 布尔值:
print(‘hello,world!’)
当表达式为布尔表达式时,Flase None 0 ”” () [] {} 都视为假!
@ if-else 语句
当if语句成立,运行if语句后缩进的代码,如果if语句不成立,则运行else语句后缩进的代码。
name = input("What is your name?")
if name.endswith('jimmy'): #当输入为Jimmy时,表达式为真,否者为假。
print('hello,{}'.format(name))
else: #当输入为其他时,if语句为假,才会运行else语句。
print('None')
当输入为jimmy时,条件语句成立:
What is your name?jimmy
hello,jimmy
当输入为其他值时,条件语句不成立:
What is your name?tom
None
@ elif 语句
创建一个成绩等级查询系统,当用户输入成绩时,可以看到成绩对应等级:
score = int(input("请输入你的成绩:"))
if score >= 90:
print('优秀')
if score >= 80:
print('良好')
if score >= 70:
print('一般')
if score >= 60:
print('及格')
if score < 60:
print('不及格')
打印结果:
请输入你的成绩:80
良好
一般
及格
运行过程中发现:if语句逐条判断,当输入成绩80时,满足前中间3个if语句,程序打印了3个输出结果,显然不满足要求。
接着来修改程序,把if语句替换成elif后:
score = int(input("请输入你的成绩:"))
if score >= 90:
print('优秀')
elif score >= 80:
print('良好')
elif score >= 70:
print('一般')
elif score >= 60:
print('及格')
elif score < 60:
print('不及格')
打印结果:
请输入你的成绩:80
良好
再次输入成绩80,第一条语句判断不成立,接着往下执行,只要有一个elif成立时,就不再判断后面的elif语句。
@ assert 断言
正常的分数值在0-100之间,以上程序当输入大于100或者小于0时程序还能照常运行,下面使用断言法来限定分数的范围:
score = int(input("请输入你的成绩:"))
assert score <= 100 and score >= 0,'请输入0-100之间的成绩'
if score >= 90:
print('优秀')
elif score >= 80:
print('良好')
elif score >= 70:
print('一般')
elif score >= 60:
print('及格')
elif score < 60:
print('不及格')
打印结果:
请输入你的成绩:-1
Traceback (most recent call last):
File "test1.py", line 3, in <module>
assert score <= 100 and score >= 0,'请输入0-100之间的成绩'
AssertionError: 请输入0-100之间的成绩
请输入你的成绩:101
Traceback (most recent call last):
File "test1.py", line 3, in <module>
assert score <= 100 and score >= 0,'请输入0-100之间的成绩'
AssertionError: 请输入0-100之间的成绩
请输入你的成绩:80
良好
·循环语句
笔记:
while 布尔值:
表达式
@ while循环语句:
要让以上的查询系统满足多次查询的条件,需要继续优化代码,使用while语句:
while True:
score = int(input("请输入你的成绩:"))
assert score <= 100 and score >= 0,'请输入0-100之间的成绩'
if score >= 90:
print('优秀')
elif score >= 80:
print('良好')
elif score >= 70:
print('一般')
elif score >= 60:
print('及格')
elif score < 60:
print('不及格')
这样就可以实现多次查询成绩啦,当输入小于0或者大于100的值时,assert断言将起作用。
end~