程序的控制结构
程序的分支结构
-单分支结构
-二分支结构
-多分支结构
-条件判断及组合
-程序的异常处理
二分支结构
guess = eval(input())
if guess == 99:
print("猜对了")
else:
print("猜错了")
紧凑形式:适用于简单表达式的二分支结构
表达式1 if 条件 else 表达式2
不支持带等号的赋值形式
guess = eval(input())
print("猜{}了".format("对" if guess==99 else "错"))
多分支结构
if …
elif …
else …
条件判断及组合
用于条件组合的三个保留字
x and y: 两个条件x和y的逻辑与
x or y:两个条件x和y的逻辑或
not x:条件x的逻辑非
guess = eval(input())
if guess > 90 or guess < 99:
print("猜错了")
else:
print("猜对了")
异常处理
try:
<语句块1>
except:
<语句块2>
try:
<语句块1>
except <异常类型>:
<语句块2>
例子:
try:
num=eval(input("请输入一个整数:"))
print(num**2)
except:
print("输入不是整数")
try:
num=eval(input("请输入一个整数:"))
print(num**2)
except NameError:
print("输入不是整数")
标注异常类型后,仅响应该异常,异常类型名字不同于变量
try:
<语句块1>
except:
<语句块2>
else:
<语句块3>
finally:
<语句块4>
-finally 对应语句块4一定执行
-else 对应语句块3在不发生异常时执行
总结:
实例5:身体质量指数BMI
BMI:对于身体质量的刻画
BMI:Body Mass Index
-定义:BMI=体重(kg)/身高^2 (m*m)
问题需求
-输入:给定体重和身高值
-输出:BMI指标分类信息(国际和国内)
height, weight = eval(input("请输入身高(米)和体重\(公斤)[逗号隔开]:"))
bmi=weight/pow(height,2)
print("BMI数值为:{:.2f}".format(bmi))
who=""
if bmi<18.5:
who="偏瘦"
elif 18.5<=bmi<25:
who="正常"
elif 25<=bmi<30:
who="偏胖"
else:
who="肥胖"
print("BMI 指标为:国际'{0}'".format(who))
国际与国内
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 <循环变量> in <遍历结构>:
<语句块>
for i in range(N): #计数循环N次
<语句块>
for i in range(M,N,K): #从M到N之前,以K为步长
<语句块>
for i in range(1,6): #1 2 3 4 5
<语句块>
for i in range(1,6,2): #1 3 5
<语句块>
for c in s: #s是字符串,遍历字符串每个字符,产生循环
<语句块>
#fi是一个文件标识符,遍历其每一行,产生循环
for line in fi:
<语句块>
例子:
for c in "Python123":
print(c, end=",")
for item in [123, "PY", "456"]:
print(item, end=",")
无限循环
由条件控制的循环运行方式
while <条件>:
<语句块>
-反复执行语句块,知道条件不满足时结束
a=3
while a>0:
a=a-1
print(a)
a=3
while a>0:
a=a+1
print(a)
循环控制保留字
-break跳出并结束当前整个循环,执行循环后的语句
-continue结束当次循环,继续执行后续次数循环
-break和continue可以与for和while循环搭配使用
打印非T的其他字母:
for c in "PYTHON":
if c == "T":
continue
print(c,end="")
for c in "PYTHON":
if c == "T":
break
print(c,end="")
循环与else
-当循环没有被break语句退出时,执行else语句块
-else语句块作为“正常”完成循环的奖励
-这里else的用法与异常处理中的else用法相似
模块3:random库的使用
random库是使用随机数的Python标准库
-伪随机数:采用梅森旋转算法生成的(伪)随机序列中元素
-random库主要用于生成随机数
-使用random库:import random
基本随机数函数
随机数种子
import random
random.seed(10)
print(random.random())
print(random.random())
扩展随机数函数