目录
程序的控制结构
程序的分支结构
1、概述
- 单分支结构
- 二分支结构
- 多分枝结构
- 条件判断及组合
- 程序的异常处理
2、单分支结构
根据判断条件结果而选择不同向前路径的运行方式
a = input("请输入成绩:")
if eval(a) > 90:
print('优秀')
2、二分支结构
根据判断条件结果而选择不同向前路径的运行方式
a = input("请输入成绩:")
if eval(a) > 90:
print('优秀')
else:
print('良好')
2.2紧凑形式
紧凑形式:适用于简单表达式的二分支结构
<表达式1> if <条件> else <表达式2>
guess = eval(input())
print("猜{}了".format("对" if guess == 99 else "错"))
3、多分支结构
a = input("请输入成绩:")
if eval(a) > 90:
print('优秀')
elif eval(a) > 70:
print('良好')
elif eval(a) >=60:
print('及格')
else:
print('不及格')
4、条件判断及组合
4.1 条件判断
操作符 | 数学符号 | 描述 |
---|---|---|
< | < | 小于 |
<= | ≤ | 小于等于 |
>= | ≥ | 大于等于 |
> | > | 大于 |
== | = | 等于 |
!= | ≠ | 不等于 |
4.2 条件组合
用于条件组合的三个保留字
操作符及使用 | 描述 |
---|---|
x and y | 两个条件x和y的逻辑与 |
x or y | 两个条件x和y的逻辑或 |
not x | 条件x的逻辑非 |
5、程序的异常处理
x = 10
try:
y = input('请输入数字:')
y += 10
except Exception as e:
print(e)
finally: # 无论报不报错,都会执行finally下面的代码
print(1)
print(x+10)
程序的循环结构
1、概述
- 遍历循环
- 无限循环
- 循环控制保留字
- 循环的高级用法
2、遍历循环的应用
2.1、计数循环(N次)
fro i in range(N):
<语句块>
- 遍历由
range()
函数产生的数字序列,产生循环
for i in range(5):
print(i)
0
1
2
3
4
2.2、计数循环(特定次)
for i in range(M,N,K):
<语句块>
- 遍历由
range()
函数产生的数字序列,产生循环
for i in range(1, 6):
print(i)
1
2
3
4
5
for i in range(1, 6, 2):
print('hello:', i)
hello: 1
hello: 3
hello: 5
3、无限循环
由条件控制的循环运行方式
- 反复执行语句块,直到条件不满足时结束
a = 3
while a > 0:
a = a - 1
print(a)
2
1
0
# 死循环, (CTRL + C 退出执行)
a = 3
while a > 0:
a = a + 1
print(a)
4、循环控制保留字
break和continue
- break跳出并结束当前整个循环,执行循环后的语句
- continue结束当次循环,继续执行后续次数循环
- break和continue可以与for和while循环搭配使用
random库的使用
1、random库基本介绍
random库是使用随机数的Python标准库
- 伪随机数:采用梅森旋转算法生成的(伪)随机序列中元素
- random库主要用于生成随机数
- 使用random库:
import random
1.1 random库概述
random库包括两类函数,常用共8个
- 基本随机数函数:
seed(),random()
- 扩展随机数函数:
randint(),getrandbits(),unifo(),randrange(), choice(), shuffle()
2、基本随机数函数
2.1随机数种子
函数 | 描述 |
---|---|
seed(a=None) | 初始化给定的随机数种子,默认为当前系统时间 |
random() | 生成一个[0.0, 1.0)之间的随机小数 |
import random
random.seed(10) # 产生种子10对应的序列
random.random()
0.5714025946899135
random.random()
0.4288890546751146
random.seed(10)
random.random()
0.5714025946899135
3、扩展随机数函数
函数 | 描述 |
---|---|
randint(a,b) | 生成一个[a, b]之间的整数 |
randrange(m, n[, k]) | 生成一个[m, n)之间以k为步长的随机整数 |
getrandbits(k) | getrandbits(k) |
uniform(a, b) | 生成一个[a, b]之间的随机小数 |
choice(seq) | 从序列seq中随机选择一个元素 |
shuffle(seq) | 将序列seq中元素随机排列,返回打乱后的序列 |
import random
random.randint(10, 100)
64
random.randrange(10, 100, 10)
80
random.getrandbits(16)
37885
random.uniform(10, 100)
11.334920142209832
random.choice([1, 2, 3, 4, 5, 6, 7])
6
s = [1, 2, 3, 4, 5, 6, 7, 8, 9]
random.shuffle(s)
print(s)
[3, 9, 7, 4, 1, 2, 6, 5, 8]
练习
- 使用while循环输出1 2 3 4 5 6 8 9 10
i = 0
while i < 10:
i += 1
print(f'{i}',end=' ')
if i == 6:
i += 1
效果:
- 求1-100的所有数的和
i = 0
for a in range(1,101):
i += a
print(i)
效果:
- 输出 1-100 内的所有奇数
i = 1
while i <= 100:
print(i)
i += 2
效果:
- 输出 1-100 内的所有偶数
i = 2
while i <= 100:
print(i)
i += 2
效果:
- 求1-2+3-4+5 ... 99的所有数的和
i = 1
s = 0
while i < 100:
s = i - (i+1)
i += 1
s = i + (i+1)
print(s)
效果:
- 用户登陆(三次机会重试)
b = '123'
for i in range(3):
a = input('请输入密码:')
if a == b:
print('密码正确!')
break
else:
print('密码不正确!')
效果:
- 猜年龄游戏
要求:允许用户最多尝试3次,3次都没猜对的话,就直接退出,如果猜对了,打印恭喜信息并退出
b = '23'
for i in range(3):
a = input('请输入年龄:')
if a == b:
print('恭喜正确!')
break
else:
print('不正确!')
效果:
- 猜年龄游戏升级版
要求:允许用户最多尝试3次
每尝试3次后,如果还没猜对,就问用户是否还想继续玩,如果回答Y或y, 就继续让其猜3次,以此往 复,如果回答N或n,就退出程序
如果猜对了,就直接退出
b = '23'
c = 0
while c < 3:
a = input('请输入年龄:')
c += 1
if a == b:
print('恭喜正确!')
break
else:
print('不正确!')
if c == 3:
d = input('是否继续:')
if d == 'y' or d == 'y':
c = 0
continue
elif d == 'n' or d == 'N':
break
效果:
- for循环打印99乘法表
for i in range(1,10):
for j in range(1,10):
if i >= j:
print(str(j) + "*" + str(i) + "=" + str(i*j), end=" ")
print()
效果:
- for循环打印金字塔:如下
*
***
*****
*******
*********
for i in range(1,5+1):
print(' '*(5-i)+'*'*(2*i-1))
效果: