顺序执行、选择执行、循环执行
顺序执行就是让程序从头到尾的顺序依次执行每一条python代码,不重复执行任何代码,也不跳过任何代码
选择执行也称分支结构,就是让程序“拐弯”,有选择性的执行代码;换句话说,可以跳过没用的代码,只执行有用的代码(if)
循环执行就是让程序“杀个回马枪”,不断地重复执行同一段代码(while和for)
伪代码
根据年龄判断是否成年
输入一个变量age,并转换为数字
(条件判断)
如果age大于等于18:
打印'成年'
如果age小于18,又分两种情况:
如果age大于等于12:
打印'少年'
如果age小于12:
打印'儿童'
age = int(input("请输入你的年龄:"))
if age >= 18:
print('成年')
else:
if age >= 12:
print('少年')
else:
print('儿童')
1.1 分支结构
违反缩进规则的程序不能通过编译
python利用缩进表示语句块的开始和退出
增加缩进表示语句块的开始,减少缩进表示语句块的退出
if语句
if 表示式:
代码块
if...else..语句
if 表达式:
代码块 1
else:
代码块 2
if...elif..else语句
if 表达式1:
代码块 1
elif 表达式2:
代码块 2
elif 表达式3:
代码块 3
....
else:
代码块 n
表达式可以是一个单一的值或者变量,也可以是由运算符组成的复杂语句,形式不限,只要它能得到一个值就行
代码块由具有相同缩进量的若干条语句组成
if、elif、else语句的最后都有英文冒号,不要忘记
一旦某个表达式成立,python就会执行它后面对应的代码块;如果所有表达式都不成立,那就执行else后面的代码块;如果没有else部分,那就什么也不执行
1.1.1 if语句(单向分支)
# 如果你已经满了18岁,就可以进入网吧嗨皮了
if 判断语句:
判断成立执行的语句块
age = int(input("请输入年龄:"))
if age >= 18:
print("恭喜你,可以进入网吧嗨皮了")
1.1.2 if...else(双向分支)
# 如果你已经满了18岁,就可以进入网吧嗨皮了,如果未满18,则提示未成年,请不要进入网吧
age = int(input("请输入年龄:"))
if age >= 18:
print("恭喜你,可以进入网吧嗨皮了")
else:
print("未成年禁止进入网吧")
1.1.3 if...elif...else(多向分支)
# 从上往下判断,如果某个表达式为True了就不会再往下执行了
if 条件表达式1:
执行语句1
elif 条件表达式2:
执行语句2
elif 条件表达式3:
执行语句3
elif 条件表达式4:
执行语句4
...
else:
执行语句n
例子:
在控制台输入您的成绩分数
如果你考了90分以上 优秀
如果你考了80分以上 良好
如果你考了70分以上 中等
如果你考了60分以上 合格
否则 不合格
score = float(input("请输入您的成绩:"))
if score >= 90:
print("优秀")
elif score >= 80:
print("良好")
elif score >= 70:
print("中等")
elif score >= 60:
print("合格")
else:
print("不合格")
1.1.4 if语句嵌套
if 表达式1:
if 表达式2:
语句块2
else:
语句块3
else:
语句块1
if score>=0 and score<=100:
if score >= 90:
print("优秀")
elif score >= 80:
print("良好")
elif score >= 70:
print("中等")
elif score >= 60:
print("合格")
else:
print("不合格")
else:
print("你的输入有误")
1.1.5 pass关键字
pass只是占了一个位置,没有实际意义
score = float(input("请输入您的成绩:"))
if score >= 0 and score <= 100:
if score >= 90:
print("优秀")
elif score >= 80:
print("良好")
elif score >= 70:
pass
elif score >= 60:
print("合格")
else:
print("不合格")
else:
print("你的输入有误")
1.1.6 三目运算符
假如现在有两个数字,我们希望获得其中比较大的一个
a = 50
b = 10
# 普通写法
if a > b:
print(a)
else:
print(b)
# 三目运算符写法
print(a if a > b else b)
例子
输入一个字符串,如果这个字符串是yes则输出'ok',否则输出原字符串
s = input("请输入:")
print('ok' if s=='yes' else s)
2.2 循环结构
1.2.1 while 循环
if 条件表达式:
代码块
if 0<10:
print("我进来了")
while 条件表达式:
代码块(循环体)
while 0<10:
print("我进来了")
当if后接的条件是固定的时候,整个程序就陷入了一个死循环模式,那么一个死循环的程序肯定不是我们想要的,所以要有一个出口
例1
# 打印1-100的所有数字
num = 1
while num <= 100:
print('num=', num)
num += 1
例2
# 计算1+2+3...+100 使用while循环
sum1 = 0 # 初始化一个去累计的变量
num = 1 # 从1循环出值
while num <= 100:
sum1+=num # sum1 = sum1+num
num += 1 # 每循环一次 值加1
print(sum1) # 5050
1.2.2 while...else...
当while循环正常执行完,中间没有被break终止的话,就会执行else后面的语句
count = 0
while count<=5:
count+=1
print(count)
else:
print("循环正常执行完了")
1
2
3
4
5
6
循环正常执行完了
1.2.3 for 循环
语法:
for 变量名 in range(start,stop,[,step]):
循环体
range()是什么?
语法:range(start,stop,[,step])
start 指的是计数起始值,默认是0
stop 指的是计数结束值,但不包括stop
step 指的是步长,默认为 1,不可以为0
range() 方法生成一段左闭右开的整数范围,同时range()也可以单数使用
对于range()函数,有几个注意的点:
1.它表示的是左闭右开区间
2.它接收的参数必须是整数,可以是负数,但是不能是浮点数等其他类型
# 输入1-100
for i in range(1,101):
print(i) # 1-100的值
for i in range(101):
print(i) # 0-100的值
# 打印0-100中所有的偶数
for i in range(0,101,2):
print(i)
# 求1-100的累加和 for循环
sum1 = 0
for i in range(1, 101):
sum1 += i # sum1=sum1+i
print(sum1)
有这么一个场景你的账号是root,密码是123456让程序循环几次程序提示输入账号和密码,如果账号和密码错误,就重新输入账号和密码,如果输入正确就打印登录成功
username = 'root'
password = '123456'
for i in range(5):
u = input("请输入账号:")
p = input("请输入密码:")
if u==username and p==password: print("登录成功")
break
else:
print("密码错误,请重新输入")
1.2.4 break和continue
break和continue是循环中满足一定条件退出循环的两种方式
break:退出整个循环
continue:退出本次循环,继续执行下一次循环
例
for i in range(1,11):
if i ==3:
print("吃饱了")
break
print("正在吃第"+str(i)+"个苹果")
正在吃第1个苹果
正在吃第2个苹果
吃饱了
for i in range(1, 11):
if i == 3:
print("吃到虫子了")
continue
print("正在吃第" + str(i) + "个苹果")
正在吃第1个苹果
正在吃第2个苹果
吃到虫子了
正在吃第4个苹果
正在吃第5个苹果
正在吃第6个苹果
正在吃第7个苹果
正在吃第8个苹果
正在吃第9个苹果
正在吃第10个苹果
1.2.5循环嵌套
for i in range(2):
for j in range(5):
print("hello world")
"""
外层for循环会执行2次
里层for循环会执行5次
"""
99乘法表
例1
for i in range(9):
for j in range(9):
if j <= i:
print(f"{i+1} * {j+1} = {(i+1) * (j+1)}", end='\t')
print()
# 例2
i = 1
while i <= 9:
j = 1
while j <= i:
print(f"{i} * {j} = {i * j}", end='\t')
j = j + 1
print()
i = i + 1