python入门知识点笔记—day3实例“身体质量指数BMI”和“π的计算”(程序的控制结构)

本文介绍了Python编程中的基础概念,包括循环结构(for、while循环)、条件分支(if、if-else、if-elif-else语句)以及random库的使用。同时,文章提供了BMI计算和π值计算的实例,展示了如何在实际问题中应用这些知识。此外,还提到了异常处理的重要性和基本使用方法。
摘要由CSDN通过智能技术生成

这段时间忙于毕业,需要整理的东西比较多,再加上临近毕业整个人都是浮躁的,每天的学习任务未能按时按量,最近也在积极调整,希望能够尽快的找回状态,加快学习进程,把python基础打牢。
本次分享的笔记主要包括了循环结构(for循环,if循环和while循环),其中比较重要的是random库的学习,本次分享的内容需要以理解为主,记忆为辅。
#1.程序分支结构
##1.1单分支结构:if语句
if语句:根据判断条件结果而选择不同向前路径的运行方式。

if <条件>:
   <语句块>

##1.2二分支结构:if-else语句
if-else语句:根据判断条件结果而选择不同向前路径的运行方式。

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

二分支结构还有一种更为简洁的表达方式,即紧凑形式:
<表达式1> if <条件> else <表达式2>

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

##1.3多分支结构:if-else-else语句
多分支结构为二分支结构的扩展,这种形式通常用于设置一个判断多条件的多条执行路径。

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

#2实例身体质量指数BMI

首先我应该明确BMI的计算公式:BMI=体重(kg)/身高2 (m2)

height, weight = eval(input("请输入身高(米)和体重\(公斤)[逗号隔开]:"))
bmi = weight / pow(height, 2)              #bmi计算公式
print("BMI数值为:{:.2f}".format(bmi))     #打印出bmi的值
who, dom = "", ""                          #who为国际标准,dom为国内标准
if bmi < 18.5:
    who, dom = "偏瘦", "偏瘦"
elif 18.5 <= bmi <24:
    who, dom = "正常", "正常"
elif 24 <= bmi <25:
    who, dom = "正常", "偏胖"
elif 25 <= bmi <28:
    who, dom = "偏胖", "偏胖"
elif 28 <= bmi <30:
    who, dom = "偏胖", "肥胖"
else:
    who, dom = "肥胖", "肥胖"
print("BMI指标为:国际'{0}', 国内'{1}'".format(who, dom))

#3程序的循环结构
循环结构可分为:遍历循环,无限循环,循环控制保留字,循环的高级用法。

##3.1遍历循环:for语句
for语句:由保留字for和in组成,完整遍历所有元素后结束。每次循环,所获得的元素放入循环变量,并执行一次语句块。
基本使用方法:

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

遍历结构可以由字符串,文件,组合数据类型,或range()函数等,经常用到的有以下形式:
①循环N次:

for i in range(N):
    <语句块>

②遍历文件fi的每一行:

for line in fi:
    <语句块>        #fi是一个文件标识符

③遍历字符串s:

for c in s:
    <语句块>       #c代表字符串每个字符

例:

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

输出结果:p,y,t,h,o,n,1,2,3,

④遍历列表ls:

for item in ls:
    <语句块>

例:

for item in [123,"py",456]:
    print(item,end=',')

输出结果:123,py,456,

##3.2无限循环:while语句
while语句成为无限循环,也称条件循环。无限循环一直保持循环操作直到循环条件不满足才结束,不需要提前确定循环次数。
基本用法:

while <条件>:
     <语句块>

利用保留字else的扩展模式:

while <条件>:
      <语句块1>
else:
      <语句块2>

对比一下for循环

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

循环与else:当循环没有被break语句退出时,执行else语句块;else语句块作为“正常”完成循环的奖励。

##3.2循环保留字:break和continue
break用来跳出最内层for或while循环,脱离该循环后程序从循环代码后继续执行。例:

for s in "BIT":
    for i in range(10):
        print(s,end="")
        if s=="I":
            break

运行结果:BBBBBBBBBBITTTTTTTTTT

s = "PYTHON"
while s != "":
     for c in s:
         print(c,end = '')
     s = s[:-1]

运行结果:PYTHONPYTHOPYTHPYTPYP

s = "PYTHON"
while s != "":
    for c in s:
        if c== 'T':
            break
        print(c,end="")
    s = s[:-1]           #切片,每一次循环去掉最后一个字符

运行结果:PYPYPYPYPYP
break语句跳出了最内层for循环,但仍然继续执行外层循环。每个break语句只有能力跳出当前层次循环。
continue语句只结束本次循环,而不终止整个循环的执行;而break语句是结束整个循环过程。

for s in "PYTHON":
     if s=="T":
        continue
      print(s, end="")

运行结果:PYHON

for s in "PYTHON":
    if s=="T"
        break
     print(s, end='')

运行结果:PY

#4 random库的使用
random库是使用随机数的python标准库,主要目的是生成随机数。其中“伪随机数”采用梅森旋转算法生成的随机序列中元素。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#5实例:π的计算
π的计算是一个采用蒙特卡罗方法计算圆周率的实例。蒙特卡罗又称随机抽样或统计实验方法。

pi = 0
N = 100
for k in range(N):
    pi = pi+1/pow(16,k)*(4/(8*k+1)-2/(8*k+4)-1/(8*k+5)-1(8*k+6))
print("圆周率值是:{}".format(pi))

采用蒙特卡罗方法求解π值:

from random import random         #调用random()函数
from time import perf_counter     #调用time()函数
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))

#6程序的异常处理
程序的异常处理需要用到保留字:try和except

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

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

异常处理的高级用法:

try:
    <语句块1>
except 
    <语句块2>
else:
    <语句块3>:
finally:
    <语句块4>

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

本次分享学习的内容就结束了,在本次学习中,需要重点学习循环结构for,while和if语句,还需要重点学习random库的使用。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值