1. 三大流程控制语句
2. 分支流程控制语句
2.1 第一类分支语句:标准的 if 语句
# if 语句
name = input("输入name:")
if name == "westos":
print("True")
2.2 第一类分支语句:if-else 语句
# 需求:当年龄小于18时,输出 “未成年” ;反之,输出 “成年”
age = int(input("年龄:"))
if age < 18:
print("未成年")
else:
print("成年")
2.3 第三类分支语句:三元运算符的 if 语句
# 三元运算符: age > 18 ? "成年" : "未成年"
age = int(input("年龄:"))
print("未成年" if age < 18 else "未成年")
2.4 第四类分支语句:if-elif-else 语句
"""
需求: 分数score
1). 90 <= score <= 100, grade=A
2). 80 <= score < 90, grade=B
3). score <80, grade=C
"""
score = int(input("score:"))
if 90 <= score <= 100:
print("等级是A")
elif 80 <= score < 90:
print("等级是B")
elif 0 <= score < 80:
print("等级是C")
else:
print("输入错误")
2.5 练习:用户登陆程序
"""
需求:
1. 用户输入用户名和密码
2. 判断用户名和密码是否正确 (用户名 = admin 密码 = westos)
3. 如果正确,输出 "用户admin登陆成功"
4. 如果不正确,输出 "用户admin登陆失败"
"""
name = input("输入用户名:")
password = input("输入密码:")
if name == "admin" and password == "westos":
print(f"用户{name}登陆成功")
else:
print(f"用户{name}登陆失败")
2.6 错误点汇总
数据类型的转换
# 需求:当年龄小于18时,输出 “未成年” ;反之,输出 “成年”
age = input("年龄:")
if age < 18:
print("未成年")
else:
print("成年")
出现报错如下:
错误原因:
age得到的值是字符串类型,需要设定input输入的值从字符串类型转换为整数类型int
- 代码的缩进
3. 循环流程控制语句
3.1 第一类循环语句:while循环语句
while循环的原理:while循环的suite_to_repeat子句会一直循环执行,直到expression值为布尔假
# 需求:输出数字 0 ~ 100
count = 0
while count <= 100:
print(count)
count += 1
3.2 第二类循环语句:while死循环
"""
需求:用户登陆系统
1. 要求死循环
2. 要求记录用户登陆的次数
3. 用户登陆成功后,退出程序 exit()
"""
count = 1
while True:
print(f"第{count}次登陆")
count += 1
name = input("输入用户名:")
password = input("输入密码:")
if name == "admin" and password == "westos":
print(f"用户{name}登陆成功")
exit()
else:
print(f"用户{name}登陆失败")
3.3 练习:输出数字 0~100之间的偶数
方法一:
# 输出 0~100 之间的偶数
count = 0
while count <= 100:
print(count)
count += 2
方法二:
count = 0
while count <= 100:
if count % 2 == 0:
print(count)
count += 1
3.4 第三类循环语句: for循环
3.4.1 for循环语法结构一:range内建函数
range 语法:
range(start, end, step=1)
返回一个包含所有k的列表, start <= k < end, k每次递增 step
# 需求:for循环实现输出 0~100之间的数字
for num in range(0,101):
print(num)
3.4.2 for循环语法结构二:序列类型for循环
for item in "westos":
print(item)
3.5 pycharm的补充知识
- python的交互式环境
- 命令行界面
3.6 for循环输出 0~100 之间的偶数
# 需求:for循环实现输出 0~100之间的偶数
for num in range(0, 101, 2):
print(num)
3.7 for循环输出 0~100 之间的奇数
注意点:
range( 1, 100, 2) 表示,从1开始遍历,直到100-1结束;其中步长为2
[ 1, 3, 5, ...... ]
# 需求:for循环输出 0~100 之间的奇数
for num in range(1, 100, 2):
print(num)
# num += 2 这句没用
3.8 跳出循环语句 break 和 continue 语句
3.8.1 break 语句
- break语句用来终止循环语句,即循环条件没False条件 或者 序列还没有被完全递归完, 也会停止执行循环语句
3.8.2 continue 语句
- 跳过当前循环的剩余语句, 然后继续进行下一轮循环
练习:九九乘法表(循环嵌套)
思路:
- i j
- 1 1
- 2 1, 2
- 3 1, 2,3
- 4 1, 2,3,4
- ... ...
- 9 1, 2,3,4,... , 9
- 这是一个嵌套循环,i 作为外部循环,j 作为内部循环
- 要求 print 输出 不换行,使用 end=' '
# 需求:九九乘法表
for i in range(1, 10):
for j in range(1, i+1):
print(f"{i}*{j}={i*j}", end=' ') # end=' ' 表示 print输出 不换行
print()
练习:防黑客暴力破解的用户登陆系统
# 需求:要求登陆的次数是在设定之内
try_count = 1
while try_count <= 3:
print(f"第{try_count}次登陆系统")
try_count += 1
name = input("用户名:")
password = input("密码:")
if name == "root" and password == "westos":
print(f"用户{name}登陆成功")
exit()
else:
print(f"用户{name}登陆失败")
else:
print("尝试次数超过3次,登陆失败")
练习+拓展:彩虹棒棒糖
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) 红色
color = colors[ i % n ]
turtle.color(color)
turtle.circle(i // 3, 5)
# 彩虹色棒棒糖绘制完成
turtle.done()