单分支结构

if <条件> : <语句块>

1
2
if a == 99:
print('对了')

二分支结构

if <条件> :
<语句块>
else :
<语句块 2>

1
2
3
4
if a == 99:
print('对了')
else :
print('错了')

紧凑形式:适用于表达简单的二分支结构
<表达式 1> if <条件> else <表达式 2>

1
print('猜{}了'.format('对' if a == 99 else '错'))

多分支结构

if <条件> :
<语句块 1>
elif :
<语句块 2>

else :
<语句块 3>


条件判断操作符

1
2
3
4
5
6
<
<=
>=
>
==
!=

用于条件组合的三个保留字
x and y :两个条件 x 和 y 的逻辑与
x or y :两个条件 x 和 y 的逻辑或
not x :条件 x 的逻辑非

1
2
3
4
if a == 99 or a < 99:
print('错')
else :
print('对')

程序的异常处理

异常处理的基本处理:
try :
<语句块 1>
except :
<语句块 2>

1
2
3
4
5
try :
num = eval(input('请输入一个整数'))
print(num**2)
except :
print('输入不是整数')

try :
<语句块 1>
except <异常类型>:
<语句块 2>

1
2
3
4
5
try :
num = eval(input('请输入一个整数'))
print(num**2)
except NameError :
print('输入不是整数')

异常处理的高级使用
try :
<语句块 1>
except :
<语句块 2>
else :
<语句块 3>
finally :
<语句块 4>

else 在不发生异常的时候执行,finally 对应语句块 4 一定执行


实例:身体质量指数 BMI

  • 定义:BMI = 体重(kg)/身高(m2)
    同时输出国际和国内 BMI 指标:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# BMI
height,weight = eval(input("请输入身高(米)和体重(公斤)[逗号隔开]:"))
bmi = weight / pow(height,2)
print("BMI 数值为:{:.2f}".format(bmi))
who,nat="",""
if bmi <18.5:
who,nat = "偏瘦","偏瘦"
elif 18.5<=bmi<24:
who,nat = "正常","正常"
elif 24<=bmi<25:
who,nat = "正常","偏胖"
elif 25<=bmi<28:
who,nat = "偏胖","偏胖"
elif 28<=bmi<30:
who,nat = "偏胖","肥胖"
else:
who,nat = "肥胖","肥胖"
print("BMI指标为:国际'{0}',国内'{1}'".format(who,nat))

程序的循环结构

  • 遍历循环 保留字:for
  • 无限循环 保留字:while
  • 循环控制保留字 break,continue
  • 循环的高级用法

遍历循环
for <循环变量> in <遍历结构> :
<语句块>

1
2
3
4
5
6
7
8
9
10
11
for i in range(5):
print(i)

for i in range(1,6):
print(i)

for i in range(1,6,2):
print(i)

for c in "python123":
print(c,end=",")

无限循环
反复执行语句块,直到条件不满足。

1
2
3
4
a = 3
while a>0 :
a = a-1
print(a)

循环控制保留字

  • break 跳出并结束当前整个循环,执行循环后的语句,一个 break 只跳出一层循环。
  • continue 结束当前循环,继续执行后续次数循环
1
2
3
4
for c in "python123":
if c == 't':
continue
print(c,end=",")

循环的拓展
循环与 else

  • 当循环没有被 break 退出时,执行 else 语句块
1
2
3
4
5
6
for c in "python123":
if c == 't':
continue
print(c,end=",")
else:
print('正常退出')

random 库的使用

random 是使用随机数的 python 标准库

  • 伪随机数:采用梅森旋转算法生成的(伪)随机序列中元素
  • 使用 random : import random

random 包括两类函数,常用共八个

  • 基本随机数函数:seed(),random()
  • 扩展随机函数: randint(),getrandbits(),uniform(),randrange(),choice(),shuffle()

基本随机数函数

  • seed(a=None) 初始化给的随机数种子,默认为当前系统时间 >>>random.seed(10)
  • random() 生成一个[0.0,1.0]之间的随机小数 >>>random.random()

扩展随机数函数
randint(a,b) 生成一个[a,b]之间的整数 >>>random.randint(10,100) #64
randrange(m,n[,k]) 生成一个[m,n]之间以 k 为步长的随机整数 >>>random.randrange(10,100,10) #80
getrandbits(k) 生成一个 k 比特长的随机整数 >>>random.getrandbits(316) #37885
uniform(a,b) 生成[a,b]之间的随机小数 >>>random.uniform(10,100) #13.092084829212343
choice(seq) 从序列 seq 中随机选择 >>>random.choice([1,2,3,4,5,6]) #2
shuffle(seq) 将序列中元素随机排列,返回打乱后的序列

1
2
3
4
s = [1,2,3,4,5,6]
random.shuffle(s)
print(s)
# [3,2,5,1,6,4]