一、认识三大流程控制:
二、墨守成规的顺序流程控制:
按顺序去执行步骤,是最基本的代码执行规则,不做过多的解释。
三、有路任性的分支流程控制:
1、分支流程语句:
2、分支语句之三元运算符:
简化了上图的代码:
3、多分支语句:
代码要求:分数为score,分为三个等级
- 90=<score<=100 , grade=A
- 80=<score<90 , grade=B
- score<80 , grade=C
score = int(input("成绩:"))
if 90<=score<=100:
print("等级A")
elif 80<=score<90: #elif表示达到第二个条件做什么操作
print("等级B")
else:
print("等级C")
4、实例:
代码需求:
- 用户输入用户名和密码
- 判断用户名和密码是否正确(用户名为admin,密码为westos)
- 如果正确:“用户登陆成功”
- 如果错误:“用户登录失败”
name = input("请输入用户名:")
passwd = input("请输入密码:")
if name=='admin' and passwd=='westos':
print("用户登陆成功")
else:
print("用户登陆失败")
5、总结:
分支语句:
1). 单分支
if 条件:
满足条件执行的内容
2). 双分支
if 条件:
满足条件执行的内容
else:
不满足条件执行的内容
3). 三元运算符(双分支的简化版)
result = 满足条件的内容 if 条件 else 不满足条件的内容
4). 多分支
if 条件1:
满足条件1执行的内容
elif 条件2:
满足条件2执行的内容
else:
不满足条件执行的内容
四、吃了炫迈的循环流程控制:
1、while循环:
代码需求: 输出数字从0-100
count = 0
while count <= 100:
print(count)
count += 1
注:while存在死循环,即while后的条件如果一直成立的话,将会一直重复后面的操作,但代码中可通过别的方式退出,所以死循环有独特的用处。
代码需求:用户登录成功进入系统, 登录失败,继续登录。 并且统计登录次数。
try_count = 1 # 用户尝试登录的次数
while True:
print(f'用户第{try_count}次登录系统')
try_count += 1 # 用户尝试登录的次数+1
name = input("用户名:")
password = input("密码:")
if name == 'admin' and password == 'westos':
print(f'用户{name}登录成功')
exit() # 退出程序
else:
print(f'用户{name}登录失败')
练习
代码需求:输出数字0-100之间所有的偶数。
可以用每次自增二的方法输出:
count = 0
while count <= 100:
print(count)
count += 2
也可以在while中添加if判断语句:
count = 0
while count<=100:
if count % 2 == 0: #对二取余为0的数,就是偶数
print(count)
count += 1
2、for循环:
range的用法:
- range(start, end)指的是从start开始倒end-1结束
- range(num)指的是从0开始倒num-1结束
- range(start, end, step), 指的是从start开始倒end-1结束, 步长为step
代码需求:输出数字从0-100。
for num in range(0, 101):
print(num)
练习
结合了range函数的用法,设置步长和起始点,更简单的输出奇数或者偶数。
# 需求: 输出数字0-100之间所有的偶数。
for num in range(0, 101, 2):
print(num)
# 需求: 输出数字0-100之间所有的奇数。 for循环和range实现。
for num in range(1, 100, 2):
print(num)
for循环遍历字符串
string = 'westos'
for item in string:
print("---", item)
3、break和continue:
-
break语句用来终止循环语句,即循环条件没False条件或者序列还没被完全递归完,也会停止执行循环语句。
-
continue 跳过当前循环的剩余语句,然后继续进行下一轮循环。
break
count = 0
while count <= 10:
count += 1 # 1
print(count)
if count == 5:
# 遇到break, 循环结束
break
continue
count = 0
while count <= 10:
count += 1
print(count)
if count == 5:
# 遇到continue跳出本次循环
continue
4、实例:
九九乘法表
此处用了循环嵌套的方式:
for i in range(1,10):
for j in range(1,i+1):
print(f"{j}*{i}={i*j}" , end=' ') # print("***",end='') 输出不换行
print()
防黑客暴力破解的用户登录系统
代码需求:
根据输入用户名和密码,判断用户名和密码是否正确。
为了防止暴力破解, 登陆仅有三次机会, 如果超过三次机会, 报错提示。
数据库信息:
name=‘root’ passwd=‘westos’
此处补充while+else用法:当不满足while条件时,执行else后的操作:
try_count = 1
while try_count <= 3:
print(f'用户第{try_count}次登录系统')
try_count += 1
name = input("用户名:")
passwd = input("密码:")
if name == 'root' and passwd == 'westos':
print(f'用户{name}登陆成功')
exit
else:
print(f'用户{name}登陆失败')
else:
print ('三次输入错误,禁止再次登陆')
也可用break实现跳出:
try_count = 1
while True:
print(f'用户第{try_count}次登录系统')
try_count += 1
name = input("用户名:")
passwd = input("密码:")
if name == 'root' and passwd == 'westos':
print(f'用户{name}登陆成功')
exit
else:
print(f'用户{name}登陆失败')
if try_count == 4:
print('禁止再次登陆')
break
5、总结:
实现循环的两种方式:
1. while循环
1).
while 条件:
满足条件的语句
2).
while 条件:
满足条件的语句
else:
不满足条件的语句
3). 死循环
while True:
一直循环执行的代码
2. for循环
1). for和range的结合: 循环n次
for num in range(n):
循环的语句
2). for和字符串的结合
for item in 'westos':
循环的语句
3). for和else的结合
for num in range(n):
循环的语句
else:
循环结束后执行的语句
3. 跳出循环
- break: 跳出循环
- continue: 结束本次循环
- exit(): 退出整个程序
4. 循环嵌套: 九九乘法表