1.流程控制
1.1简介
什么是流程控制?
在python中流程控制主要有顺序执行、选择执行、循环执行
- 顺序结构就是让程序按照从头到尾的顺序依次执行每一条python代码,不重复执行任何代码,也不跳过任何代码。
- 选择结构也称分支结构,就是让程序“拐弯”,有选择性的执行代码;换句话说就是可以跳过没用的代码,只执行有用的代码。
- 循环结构让程序杀个回马枪,不断地重复执行同一段代码。
- if
- if...else
- if...elif..else
- while
- while .else
- for
- for...else
1.1.1伪代码
是一种算法描述语言
用简单粗暴的文字来理解一下一段代码含义:
age = int(input("请输入你的年龄:"))
如果 age >=18:
输出("成年")
否则
如果 age >=12:
输出("少年")
否则
输出("儿童")
# 用代码实现上述文字
age = int(input("请输入你的年龄:"))
if age >=18:
print("成年")
else:
if age >=12:
print("少年")
else:
print("儿童")
1.2分支结构
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语句的最后都有:,不要忘记
1.2.1 if语句(单向分支)
如果你已经满18岁了,就可以进入网吧了
单向分支 if 判断语句: 判断成立执行的语句块
age = int(input("请输入你的年龄:"))
if age > 18:
print("恭喜你,可以进入网吧嗨皮了")
1.2.2if...else(双向分支)
age = int(input("请输入你的年龄:"))
if age > 18:
print("恭喜你,可以进入网吧嗨皮了")
else:
print("不好意思,你未成年,不能进入网吧")
1.2.3if...elif...else(多向分支)
我们的考试成绩
在控制台输入你的成绩: 如果你考了90分以上 成绩为优秀 如果你考了80分以上 成绩为良好 如果你考了70分以上 成绩为中等 如果你考了60分以上 成绩为合格 否则 成绩不合格
score = int(input("请输入你的成绩:"))
if score >= 90:
print("成绩优秀")
elif score >= 80 and score < 90:
print("成绩良好")
elif score >= 70 and score < 80:
print("成绩中等")
elif score >= 60 and score < 70:
print("成绩合格")
else:
print("成绩不合格")
1.2.4 if语句嵌套
if 表达式1: if 表达式2: 代码块2 else: 代码块3 else: 代码块1
score = int(input("请输入你的成绩:"))
if score >= 0:
if score >= 90:
print("成绩优秀")
elif score >= 80 and score < 90:
print("成绩良好")
elif score >= 70 and score < 80:
print("成绩中等")
elif score >= 60 and score < 70:
print("成绩合格")
else:
print("成绩不合格")
else:
print("你的输入有误")
1.2.5 pass关键字的使用
占位(pass本身并无意义,只代表占了一个位子而已,比如有时我们还没想到要赋予一个变量什么值或意义的时候,可以用pass占位。)
score = float(input("请输入你的分数:"))
if 0 < score <= 100:
if score < 60:
print("不及格")
elif 60 <= score < 70:
print("合格")
elif 70 <= score < 80:
pass
elif 80 <= score < 90:
print("优秀")
else:
pass
else:
pass
1.2.6三目运算符
python是一种极简主义的编程语言,使用三目运算符可以有效的简化代码
#初始代码1
a = 10
b = 5
max = 0
if a > b:
max = a
else:
max = b
print(max)
#使用三目运算符代码1描述为:
max = a if a > b else b
print(max)
#初始代码2
s = input("请输入:")
if s == 'yes':
print('ok')
else:
print(s)
#使用三目运算符代码2描述为:
print('ok' if s =='yes' else s)
1.3循环结构
循环就是将一段代码不断的重复执行,直到循环结束程序再继续往下走
1.3.1while循环
if 条件表达式:
代码块
while 条件表达式:
代码块(循环体)
a = 0
while a < 10:
print("我进来了")
a += 1
# 直到条件为false
# 分析
while 0<10
while 1<10
while 2<10
while 10<10——》条件表达式是false了,循环结束
完成一个小需求:
# 打印1-100所有数字,可以使用while循环 number = 1 while number < 100: print(number) number += 1
# 打印1-100所有数字,可以使用while循环
number = 1
while number < 100:
print(number)
number += 1
num = 98 ,98<100 进入循环,打印变量98 ,num+1
num = 99 ,99<100 进入循环,打印变量99 ,num+1
num = 100 ,100<100 ,false 结束循环
number = 1
while number <= 100:
print(number)
number += 1
1.3.2 for循环
语法
for 变量名 in range(n): 循环体
range()是什么?
语法:
range(start,stop,[,step])
start指的是计数的起始值,默认是0
stop指的是计数结束值
step是步长,默认是1,不可以为0
range()方法生成一段左闭右开的整数范围
注意点: - 它表示的是左闭右开区间: - 它接收的参数必须是整数,可以是负数,但是不能是浮点数等其他的类型; - 它是不可变的序列类型,可以进行判断元素、查找元素、切片等操作,但是不能修改元素; - 它是可迭代对象,但不是迭代器
- 1-100的数
for i in range(1,101):
print(i)
# 打印1-100中的所有偶数
for i in range(0,101,2):
print(i)
#模拟登陆,最多登录五次
username = 'root'
password = '123456'
max = 5 #设置最多错误的次数
for i in range(max):
u = input("请输入账号:")
p = input("请输入密码:")
if u == username and p ==password:
print("登录成功")
else:
print("密码错误,请重新输入")
1.3.3 break作用是退出循环(退出整个循环)
username = 'root'
password = '123456'
max = 5 #设置最多错误的次数
for i in range(max):
u = input("请输入账号:")
p = input("请输入密码:")
if u == username and p ==password:
print("登录成功")
break
else:
print("密码错误,请重新输入")
for i in range(1,11):
u = input("请输入账号:")
p = input("请输入密码:")
if i == 6:
print("账号冻结")
break
if u == 'root' and p =='123456':
print("登录成功")
break
else:
print("密码错误,重新输入")
1.3.4 continue(退出本次循环,继续执行下一次循环)
小明吃苹果,一共十个
- 吃到第三个的时候饱了,不想吃了,吃苹果的循环就可以停止了,这就是break,也就是终止整个循环
- 如果是吃的过程中,小明吃到第三个的时候迟到了一条虫子,苹果不能吃了,直接扔掉,然后继续吃下一个苹果,这就是continue
# 情况一
for i in range(1,11):
if i == 3:
print("吃饱了")
break
print("正在吃第"+str(i)+"个苹果")
# 情况二
for i in range(1,11):
if i == 3:
print("吃出虫子了")
continue
print("正在吃第"+str(i)+"个苹果")
1.3.5 循环嵌套
for i in range(2):
for j in range(5):
print("hello world")
# 外层循环执行2次
# 内层循环执行5次
"""
打印一栋楼的所有的房间号,假设这栋楼有5层,每层楼有9个房间
我们要怎么样去输出他们的的房间号?
"""
# for i in range(1,6):
# for j in range(1,10):
# print(str(i)+"0"+str(j)+"号")
# while
i = 1
while i <6:
j = 1
while j < 10:
print(str(i)+"0"+str(j)+"号")
j += 1
i +=1
# for 可以和 while交互嵌套
i = 1
while i < 6:
for j in range(1,10):
print(str(i) + "0" + str(j) + "号")
i += 1