- 控制语句就是把语句组合成能完成一定功能的小逻辑模块(与现实中逻辑思维可以对应起来,相当于串联一堆单词)
- 分为三类 顺序 选择 循环(这三类可以表达所有的事情 小到一个练习 大到一个操作系统 本质上都是变量选择语句循环语句)
顺序 先执行a 后执行b
条件 如果…则…(符合条件执行)
循环 如果…则重复执行…(举个例子哈哈哈 如果没有遇到喜欢的人 则再继续找)
单分支选择结构
选择结构(条件判断结构)分为多种形式 比如单分支 双分支 多分支
num = 8
if num < 10: # if后面是条件表达式 可以是逻辑表达式 关系表达式 算术表达式
print("小于10的整数:"+str(num)) #这里是语句 可以是一句也可以是多句
# 小于10的整数:8
num = input("输入一个数字:")
if int(num)<10:
print("小于10的整数:"+str(num))
条件表达式详解
在选择与循环结构中,条件表达式的值为False的情况如下:
- False
- 0
- 0.0
- 控制None
- 空序列对象(空列表 空元组 空集合 空字典 空字符串)
- 空range对象
- 空迭代对象
除了以上情况外其他均为True
这样看来Python中的所有合法表达式 都可以看做 条件表达式 甚至包括函数调用的表达式
if 3:
print("ok!")
if 0:
print("0")
a = []
if a:
print("空列表,False")
b = [1,2]
if b:
print("非空列表,True")
c = ""
if c:
print("空字符串,False")
if "False":
print("非空字符串,True")
d = 9
if 3<d<20:
print("3<d<20")
if 3<d and d<20:
print("3<d and d<20")
if True:
print("True")
# ok!
# 非空列表,True
# 非空字符串,True
# 3<d<20
# 3<d and d<20
# True
条件表达式当中,不可有赋值操作符=
e = False
if e == True:
print("dddd")
# e = False
# if e = True:
# print("dddd")
# 这种情况会报错
双分支选择结构
# if 条件表达式:
# 语句1
# else :
# 语句2
num = input("输入一个数字:")
if int(num)<10:
print(num)
else:
print("数字太大")
三元条件运算符
条件为真时的值 if (条件表达式) else 条件为假时的值
条件为真时条件为真时的值就作为运算结果 条件为假时条件为假时的值就作为运算结果
num = input("输入一个数字:")
print(num if int(num)<10 else "数字太大")
多分支选择结构
注:几个分支之间有逻辑关系 不可颠倒顺序
给我一种感觉就是由小到大 就是由内部到外部 因为是先判断是否满足 小条件 然后再看是否满足大条件就是像坐标那个代码一样就是先看原点再看X轴Y轴个人感觉 或许由内到外可能思路清晰一点
# if 条件表达式1:
# 语句1
# elif 条件表达式2: # elif 就是elseif
# 语句2
# ……
# elif 条件表达式n:
# 语句n
# [else:
# 语句n+1] # 计算机专业描述语法格式的时候,使用[]通常表示可选 非必选
# 输入一个学生成绩,描述:不及格(小于60),及格(60-79),良好(80-89),优秀(90-100)
score = int(input("输入分数(0-100):"))
grade =''
if score<60:
grade = "不及格"
if 60<=score<80:
grade = "及格"
if 80<=score<90:
grade = "良好"
if 90<=score<=100:
grade = "优秀"
print("分数是{0},等级是{1}".format(score,grade))
# 输入一个学生成绩,描述:不及格(小于60),及格(60-79),良好(80-89),优秀(90-100)
score = int(input("输入分数(0-100):"))
grade = ''
if score<60:
grade = "不及格"
elif score<80:
grade = "及格"
elif score<90:
grade = "良好"
# elif score <= 100:
# grade = "优秀" # 省略的这两行和下面一个效果
else:
grade = "优秀"
print("分数是{0},等级是{1}".format(score,grade))
# 已知点的坐标(x,y)判断其所在的象限
x = int(input("请输入x坐标:"))
y = int(input("请输入y坐标:"))
if x==0 and y==0:
print("原点")
elif x==0:
print("y轴")
elif y==0:
print("x轴")
elif x>0 and y>0:
print("第一象限")
elif x>0 and y<0:
print("第二象限")
elif x<0 and y<0:
print("第三象限")
else:
print("第四象限")
选择结构嵌套
从属关系由缩进量决定
# score 0-100 90以上A 80以上B 70以上C 60以上D 60以下E
score = int(input("输入一个在0-100之间的数字"))
grade = ''
if score>100 or score<0:
score = int(input("输入错误!!重新输入一个在0-100之间的数字")) # 这里只能判断一次因为没用循环
else:
if score>=90:
grade = 'A'
elif score>=80:
grade = 'B'
elif score>=70:
grade = 'C'
elif score>=60:
grade = 'D'
else:
grade = 'E'
print("分数是{0},等级是{1}".format(score,grade))
下面这种更简单更需要大量的思考
score = int(input("输入一个在0-100之间的数字"))
degree = 'ABCDE'
num = 0
if score>100 or score<0:
score = int(input("输入错误!!重新输入一个在0-100之间的数字"))
else:
num = score//10
if num<6:
num=5
print("分数是{0},等级是{1}".format(score,degree[9-num]))