python基础四之程序的控制结构

  • 程序的控制结构:顺序结构,分支结构,循环结构

1.        程序的分支结构

1.1 分支结构

  • 单分支结构

if <条件>:  

  <语句块>

满足条件即可执行相应语句块,反之不执行

  • 二分支结构

if <条件>:  

  <语句块1>

else:

  <语句块2>

满足条件就执行语句块1,反之执行语句块2

  • 紧凑格式:用于简单表达式点二分支结构

<表达式1> if  <条件>  else <表达式2>

 如:guess = eval(input())

print("猜了".format("对” if guess==66 else"错"))

  • 多分支结构

if <条件1>:

  <语句1>

elif <条件2>:

   <语句2>

......

else:

   <语句块N>

如果满足条件1则执行语句1,反之判断是否满足语句2,满足执行语句2,反之判断条件3,......,所有条件不满足,执行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))

1.2 条件判断及组合

  • 条件判断

guess = eval(input())

if guess > 99 or guess <99:

print("猜错了")else :

print("猜对了”)

  1. 条件组合:用于条件组合的三个保留字

if not True:

print(“语句块2")else:

print(“语句块1")

1.3 程序的异常处理

  1. 异常处理的基本使用

try:

  <语句块1>

except :

  <语句块2>

try :

  <语句块1>

except <异常类型>:

  <语句块2>

实例1:try中出错,就执行except类型

try:

  num = eval(input("请输入一个整数:"))

  print(num**2)

except :

  print(“输入不是整数”)

实例2:

try:

  num = eval(input(“请输入一个整数:"))

  print(num**2)

except NameError:

#标注异常类型后,仅响应此类异常,异常类型名字等同于变量名

  print(“输入不是整数")

  • 异常处理的高级使用

try:

  <语句块1>

except :

  <语句块2>

else :

  <语句块3>

finally:

  <语句块4>

#finally对应语句块4一定执行

#else对应语句块3在不发生异常时执行

1.4 实例

身体质量指标BMI,BMI= 体重(kg)/身高的平方(m2)如下

问题需求:

输入:给定体重和身高值

    输出:BMI指标分类信息(国际和国内)

思路方法

难点在于同时输出国际和国内对应的分类

        思路1:分别计算并给出国际和国内BMI分类

        思路2:混合计算并给出国际和国内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))


结果:
请输入身高(米)和体重(公斤)[逗号隔开]:1.68,52
BMI数值为:18.42
BMI指标为:国际'偏瘦',国内'偏瘦'

2.        程序的循环结构

2.1 遍历循环

遍历循环:遍历某个结构形成的循环运行方式

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

     <语句块>

从遍历结构中逐一提取元素,放在循环变量中。由保留字for和in组成,完整遍历所有元素后结束。每次循环,所获得元素放入循环变量,并执行一次语句块

  • 计数循环

for i in range(N):

  <语句块>

遍历由range()函数产生的数字序列,产生循环

计数循环(特定次):[M,N)范围内每k(步长)个取一个

for i in range(M,N,K):

  <语句块>

  • 字符串循环遍历

for c in s:

  <语句块>

s是字符串,遍历字符串每个字符,产生循环

for c in “Python123":

  print(c, end=", ")

结果:  P, y, t, h, o, n, 1, 2, 3,

  • 列表循环遍历

for item in ls:

  <语句块>

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

for item in [123,“PY",4561 :

  print(item, end=",")

结果:  123, PY, 456,

  • 文件循环遍历

for line in fi:

  <语句块>

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

2.2 无限循环

由条件控制的循环运行方式

whiLe <条件>:

  <语句块>

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

2.3 循环控制保留字

break 和 continue

①break跳出并结束当前整个循环,执行循环后的语句-

②continue结束当次循环,继续执行后续次数循环

③break和continue可以与for和while循环搭配使用

2.4 循环的高级用法

循环与else

for  <变量> in <遍历结构>:

  <语句块1>

else:

  <语句块2>

while <条件>:

  <语句块1>

else:

  <语句块2>

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

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

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

3.        random库的使用

random库是使用随机数的Python标准库,random库主要用于生成随机数

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

  • 使用random库: import random
  • random库包括两类函数,常用共8个

基本随机数函数:seed(), random()

扩展随机数函数:randint), getrandbits(), uniform()

                randrange(), choice(), shuffle()

4.        实例

圆周率的计算

圆周率的近似计算公式

代码:

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)    #x**2为x的2次方,y**2为y的2次方
    if dist <= 1.0:
        hits = hits + 1
pi = 4 * (hits / DARTS)
print("圆周率是:{}".format(pi))
print("运行时间是:{:.5f}s".format(perf_counter() - start))

结果:
圆周率是:3.139496
运行时间是:0.29986s

  • 12
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值