目录
4.3 跳出循环语句break 语句和continue 语句
一、认识三大流程控制
二、墨守循规的顺序流程控制
编写一个程序,提示用户按圆的半径计算圆的周长和面积。
输入圆的半径: 5.3
半径为5.3cm的圆的周长为33.3,面积为 88.2 。
三、有路任性的分支流程控制
第一类分支语句: if - else 语句
if expression: if_suite else: else_suite
第二类分支语句: 标准的 if 语句
if expression: if_suite
第三类分支语句: if - elif - else 语句
if expression1: if_suite elif expression2: elif_suite else: else_suite
第四类分支语句: 三元运算符的if语句
if_suite if expression1 else else_suite
四、吃了炫迈的循环流程控制
4.1 while循环语法结构
while循环原理: while 循环的 suite_to_repeat 子句会一直循环执行, 直到 expression 值为布尔假.
第一类循环语句: while循环语句
while expression: suite_to_repeat
1. 计数循环
count = 0 while (count < 9): print('the index is:', count) count += 1
2.无限(死)循环
while True: cmd = input() if cmd: os.system(cmd)
4.2 for循环语法结构
1.序列类型for循环
2. range() 内建函数
range语法:
range(start, end, step =1)返回一个包含所有 k 的列表, start <= k < end , k每次递增 step
4.3 跳出循环语句break 语句和continue 语句
break语句用来终止循环语句,即循环条件没False条件或者序列还没被完全递归完,也会停止执行循环语句。
continue 跳过当前循环的剩余语句,然后继续进行下一轮循环。
五、实验操作
5.1 分支流程语句
# python中input接收的是字符串, 如果接收整型数, 需要通过int转成整型数。
age = int(input("年龄:"))
# 需求: 如果年龄大于18岁, 输出成年, 否则输出未成年。
# 注意点: 冒号和缩进是python的语法规范。
if age > 18:
print("成年")
else:
print("未成年")
5.2 分支流程语句之三元运算符
# python中input接收的是字符串, 如果接收整型数, 需要通过int转成整型数。
age = int(input("年龄:"))
# 需求: 如果年龄大于18岁, 输出成年, 否则输出未成年。
# 注意点: 冒号和缩进是python的语法规范。
# 三元运算符: age>18?"成年":"未成年"
print("成年" if age>18 else "未成年")
5.3 多分支语句
"""
补充pycharm快速复制一行的快捷键: ctrl + d
需求: 分数score
1). 90=<score<=100, grade=A
2). 80=<score<90, grade=B
3). score<80, grade=C
"""
score = int(input('成绩:'))
if 90<=score<=100:
print("等级是A")
elif 80<=score<90: # elif 满足第二个条件做什么操作
print("等级是B")
else:
print("等级是C")
5.4 用户登录程序
"""
代码需求:
1. 用户输入用户名和密码
2. 判断用户名和密码是否正确(用户名=admin, 密码=westos)
3. 如果正确: "用户admin登录成功"
3. 如果不正确: "用户admin登录失败"
"""
name = input("用户名:")
password = input("密码:")
if name == 'admin' and password == 'westos':
print(f'用户{name}登录成功')
else:
print(f'用户{name}登录失败')
5.5 分支语句语法汇总
"""
分支语句:
1). 单分支
if 条件:
满足条件执行的内容
2). 双分支
if 条件:
满足条件执行的内容
else:
不满足条件执行的内容
3). 三元运算符(双分支的简化版)
result = 满足条件的内容 if 条件 else 不满足条件的内容
4). 多分支
if 条件1:
满足条件1执行的内容
elif 条件2:
满足条件2执行的内容
else:
不满足条件执行的内容
"""
5.6 while循环
# 需求: 输出数字从0-100
"""
count=0, while 0<=100, print(0) count+=1
count=1, while 1<=100, print(1) count+=1
....
count=99 while 99 <=100, print(99) count+=1
count=100 while 100 <=100, print(100) count+=1
count=101 while 101 <=100(x)
"""
count = 0
while count <= 100:
print(count) # 0
# count = count + 1
count += 1
5.7 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}登录失败')
5.8 while练习题目
# 需求: 输出数字0-100之间所有的偶数。
"""
方法一:
count = 0
while count<=100:
if count % 2 == 0:
print(count)
count += 1
方法二:
count = 0
while count <= 100:
print(count)
count += 2
"""
5.9 for循环
# 需求: 输出数字从0-100
"""
range(0, 101) 生成0-100的数值
for num in range(0, 101)
- num=0
- num=1
....
- num=100
"""
# range(start, end)指的是从start开始倒end-1结束
# range(num)指的是从0开始倒num-1结束
# range(start, end, step), 指的是从start开始倒end-1结束, 步长为step
for num in range(0, 101):
print(num)
5.10 for循环的练习题
# 需求: 输出数字0-100之间所有的偶数。
for num in range(0, 101, 2):
print(num)
# 需求: 输出数字0-100之间所有的奇数。 for循环和range实现。
for num in range(1, 100, 2):
print(num)
5.11 for循环遍历字符串
# for循环访问字符=串
string = 'westos'
# item='w', 'e', 's', 't'...
for item in string:
print("---", item)
5.12 break和continue
# count = 0
# while count <= 10:
# count += 1 # 1
# print(count)
# if count == 5:
# # 遇到break, 循环结束
# break
count = 0
while count <= 10:
count += 1 # 1
print(count)
if count == 5:
# 遇到continue跳出本次循环
continue
5.13 九九乘法表
"""
i j
1 1
2 1,2
3 1, 2, 3
...
9 1, 2, 3, ...9
"""
# 如何让print不换行呢? print('xxx', end=' ')
for i in range(1, 10):
for j in range(1, i + 1):
print(f"{j}*{i}={j*i}", end=' ')
# i=1, i=2, i=3, 开始换行
print()
5.14 彩虹棒棒糖
import turtle
"""
R:red, G:green, B:blue
RGB颜色表示法:
red: (255,0,0)
green: ()
blue: ()
"""
# 1. 生成渐变色的列表
# 从红色到黄色
colors1 = [(255, g, 0) for g in range(0, 256)]
# 从黄色到绿色
colors2 = [(r, 255, 0) for r in range(255, -1, -1)]
# 从绿色到青色
colors3 = [(0, 255, b) for b in range(0, 256)]
# 从青到蓝
colors4 = [(0, g, 255) for g in range(255, -1, -1)]
# 从蓝到紫
colors5 = [(r, 0, 255) for r in range(0, 256)]
# 从紫到红
colors6 = [(255, 0, g) for g in range(255, -1, -1)]
# colors = colors1 + colors2 + colors3 + colors4 + colors5 + colors6
colors = colors1 + colors2 + colors3 + colors4 + colors5 + colors6
n = len(colors)
# 2. 基于turtle生成彩虹糖(可根据自己的喜好调整彩虹棒棒糖的颜色)
# 画笔的大小: 20px
turtle.pensize(20)
# 画图的速度,0代表最快速度
turtle.speed(0)
# 设置turtle指定颜色的模式, 255代表rgb模式
turtle.colormode(255)
# 循环1000次不断画圆,画圆的同时不断调整圆的半径
for i in range(1000):
# 如果颜色超出给定的范围,和总颜色个数取余,从头开始获取颜色。
color = (255, 0, 0)
turtle.color(color)
turtle.circle(i // 3, 5)
# 彩虹色棒棒糖绘制完成
turtle.done()
5.15 防黑客暴力破解的用户登录系统
"""
需求:
根据输入用户名和密码,判断用户名和密码是否正确。
为了防止暴力破解, 登陆仅有三次机会, 如果超过三次机会, 报错提示。
数据库信息:
name='root' passwd='westos'
"""
try_count = 1 # 用户尝试登录的次数
while try_count <= 3:
print(f'用户第{try_count}次登录系统')
try_count += 1 # 用户尝试登录的次数+1
name = input("用户名:")
password = input("密码:")
if name == 'root' and password == 'westos':
print(f'用户{name}登录成功')
exit() # 退出程序
else:
print(f'用户{name}登录失败')
else:
print("尝试的次数大于3次")
5.16 while循环和else结合的补充
"""
while 条件表达式:
满足条件执行的内容
else:
不满足条件执行的内容
for i in range(2):
循环时执行的语句
else:
没有for可以遍历的值时,执行的语句
"""
try_count = 1
while try_count <= 3:
print(f"第{try_count}次开始尝试登录")
try_count += 1
else:
print("尝试登录次数大于3次")
5.17 循环语句语法汇总
"""
实现循环的两种方式:
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. 循环嵌套: 九九乘法表
"""