第四周:程序的控制结构

4-1 程序的分支结构
1.单分支结构
基本构成:


2.二分支结构

基本构成:

紧凑形式:
适用于简单表达式的二分支结构

guess = eval(input())
print("猜{}了".format("对" if guess==99 else "错")))

3.多分支结构
基本构成:

if <条件1> :
<语句块1>
elif <条件2> :
<语句块2>
……
else :
<语句块N>
score = eval(input())
if score >= 60:
grade = "D"
elif score >= 70:
grade = "C"
elif score >= 80:
grade = "B"
elif score >= 90:
grade = "A"
print("输入成绩属于级别{}".format(grade))

4.条件判断及组合
条件判断

条件组合

5.程序的异常处理

4.2身体质量指数BMI

代码:

#CalBMIv1.py

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))

4.3程序的循环结构
1.遍历循环
基本构成:

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

从遍历结构中逐一提取元素,放在循环变量中

由保留字for和in组成,完整遍历所有元素后结束

每次循环,所获得元素放入循环变量,并执行一次语句块

计数循环:

for i in range(5):
print(i)


0
1
2
3
4

字符串遍历循环:

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


P,y,t,h,o,n,1,2,3,

列表遍历循环:

for item in ls :
<语句块>

ls是一个列表,遍历其每个元素,产生循环

文件遍历循环:

for line in fi :
<语句块>

fi是一个文件标识符,遍历其每行,产生循环

2.无限循环
由条件控制的循环运行方式

while <条件> :
<语句块>

反复执行语句块,直到条件不满足时结束

3.循环控制保留字

4.循环的高级用法

当循环没有被break语句退出时,执行else语句块

else语句块作为"正常"完成循环的奖励

这里else的用法与异常处理中else用法相似

4-4 random库的使用
1.基本随机函数

2.拓展随机函数

4.5圆周率的计算
蒙特卡罗方法:

#CalPiV2.py

from random import random

from time import perf_counter
DARTS = 1000*1000
hits = 0.0
start = perf_counter()
for i in range(1, DARTS+1):
x, y = random(), random()
dist = pow(x ** 2 + y ** 2, 0.5)
if dist <= 1.0:
hits = hits + 1
pi = 4 * (hits/DARTS)
print("圆周率值是: {}".format(pi))
print("运行时间是: {:.5f}s".format(perf_counter()-start))
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 4.1单分支结构 单分支结构(最简单) 根据判断条件结果而选择不同向前路径的运行方式 单分支示例: 二分支结构 根...
    酒肆南城阅读 635评论 0 1
  • 分支结构 if-elif-else try-except 循环结构 重复执行某一固定动作或者任务 分类forwhi...
    Yuanshuo阅读 271评论 0 0
  • Swift 提供了类似 C 语言的流程控制结构,包括可以多次执行任务的for和while循环,基于特定条件选择执行...
    穷人家的孩纸阅读 716评论 1 1
  • [The Swift Programming Language 中文版]本页包含内容: Swift提供了多种流程控...
    风林山火阅读 587评论 0 0
  • Swift提供了多种控制流声明。包括while循环来多次执行一个任务;if,guard和switch声明来根据确定...
    BoomLee阅读 1,984评论 0 3