一、认识三大流程
- 顺序流程
- 分支流程
- 循环流程
二、顺序流程控制(好好过日子)
话不多说直接上实例
编写一个程序,提示用户按圆的半径计算圆的周长和面积。
输入圆的半径: 5.3
半径为5.3cm的圆的周长为33.3,面积为 88.2 。
r = float(input("请输入圆的半径:")) #设置为浮点型
t = 3.14 # 设定π
c = 2 * t * r # 圆的周长公式 c = 2πr
s = t * r * r #圆的面积公式 s = π*r*r
print("圆的周长为 %.2f" % c) #结果为浮点型,也就是包含小数
print("圆的面积为 %.2f" % s)
三、分支流程控制(你不行,那我走?)
1.第一类分支语句: if - else 语句
if expresslon:
if_suite
else:
else_suite
2.第二类分支语句: 标准的 if 语句
if expresslon:
if_suite
3.第三类分支语句: if - elif - else 语句
if expression1:
if_suite
elif expression2:
elif_suite
else:
else_suite
来个实例瞧一瞧?
编写一个程序,提示学生输入个人平均成绩, 输出学生成绩的等级。
输入平均成绩: 100
学生的成绩等级为A。
achievement = int(input("请输入该学生个人平均成绩:")) #设定输入
if 90 < achievement <= 100: #条件判断1
print(f'该学生个人平均成绩{achievement}分,等级为 A ') #结果符合输出,结果不符,判断下面条件
elif 70 < achievement <=90:
print(f'该学生个人平均成绩{achievement}分,等级为 B ')
else: #上面条件都不符合,直接输出等级为C
print(f"该学生个人平均成绩{achievement}分,等级为 C")
4.第四类分支语句: 三元运算符的if语句
if_suite if expression1 else else_suite
5.random模块
函数 | 函数功能 |
---|---|
random.random() | 生成一个0到1的随机符点数: 0 <= n < 1.0 |
random.uniform(a, b) | 生成一个指定范围内的随机浮点数:a <= n <= b |
random.randint(a, b) | 生成一个指定范围内的整数:a <= n <= b |
random.choice(‘abcdef’) | 从序列中获取一个随机元素 |
random.shuffle([1, 2, 3, 4, 5, 6]) | 将的元素打乱顺序 |
实例
在1-1000随机生成数字,数量也随机
import random
N = random.randint(1,1000)
s = set()
print("数量:",N)
for i in range(N):
s.add(random.randint(1,1000))
print(sorted(s,reverse=True)) #reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)
四、循环流程控制(根本停不下来)
1.第一类循环语句: while循环语句
- while循环原理: while 循环的 suite_to_repeat 子句会一直循环执行, 直到 expression 值为布尔假。
while expression:
suite_to_repeat
计数循环
count = 0
while (count < 9):
print('the index is:', count)
count += 1
无限(死)循环
while True:
cmd = input()
if cmd:
os.system(cmd)
2.第二类循环语句: for循环语句
- for循环原理(有概念即可, 讲生成器时详细说):
可以遍历序列成员, 可以用在 列表解析 和 生成器表达式中, 它会自动地调用迭代器的 next()
方法, 捕获 StopIteration 异常并结束循环(所有这一切都是在内部发生的)。
序列类型for循环
for item in 'hello':
print("字符显示:",item)
range() 内建函数
for item in range(10):
print("变量显示:",item)
3.range()内建函数
range语法:
range(start, end, step =1)返回一个包含所有 k 的列表, start <= k < end , k每次递增 step
4.跳出循环语句break和continue
- break语句用来终止循环语句,即循环条件没False条件或者序列还没被完全递归完,也会停止执行循环语句。
- continue 跳过当前循环的剩余语句,然后继续进行下一轮循环。
实例
1.九九乘法表
for m in range(1,10):
for n in range(1,m+1):
print(f'{m}*{n}={n*m}',end =' ')
print()
2.用户登录系统
根据输入用户名和密码,判断用户名和密码是否正确。 为了防止暴力破解, 登陆仅有三次机会, 如果超过三次机会, 报错提示。
数据库信息:
name=‘root’ passwd=‘westos’
count = 0 #循环次数设置
while count < 3:
name = input("用户名:")
passwd = input("密码:")
if name == 'root' and passwd == 'westos':
print(f"{name} 登录成功")
break #判断正确输出结束循环
else:
print(f"{name}登录失败")
count += 1
if count ==3:
print("3,退出")