[第4周]程序的控制-Python语言程序设计(学习笔记)

文章原创,最近更新:2018-04-15

1.课程导学
2.程序的分支结构
3.实例5:身体质量指数BMI
4.程序的循环结构
5.模块3:random库的使用
6.实例6:圆周率的计算
7.所有的代码汇总
原链接 语言程序设计北京理工大学

1.课程导学

1.1前课复习

《[第4周]程序的控制-Python语言程序设计(学习笔记)》
《[第4周]程序的控制-Python语言程序设计(学习笔记)》
《[第4周]程序的控制-Python语言程序设计(学习笔记)》
《[第4周]程序的控制-Python语言程序设计(学习笔记)》
《[第4周]程序的控制-Python语言程序设计(学习笔记)》
《[第4周]程序的控制-Python语言程序设计(学习笔记)》

1.2本课概要

《[第4周]程序的控制-Python语言程序设计(学习笔记)》
《[第4周]程序的控制-Python语言程序设计(学习笔记)》
《[第4周]程序的控制-Python语言程序设计(学习笔记)》

1.3练习与作业

《[第4周]程序的控制-Python语言程序设计(学习笔记)》

2.程序的分支结构

2.1单元开篇

《[第4周]程序的控制-Python语言程序设计(学习笔记)》

2.2单分支结构

《[第4周]程序的控制-Python语言程序设计(学习笔记)》

类似如果则..如果天气好,出去玩,否则不出去.

《[第4周]程序的控制-Python语言程序设计(学习笔记)》

2.3二分支结构

《[第4周]程序的控制-Python语言程序设计(学习笔记)》
《[第4周]程序的控制-Python语言程序设计(学习笔记)》
《[第4周]程序的控制-Python语言程序设计(学习笔记)》

2.4多分支结构

《[第4周]程序的控制-Python语言程序设计(学习笔记)》
《[第4周]程序的控制-Python语言程序设计(学习笔记)》

这一段代码逻辑有关系,需要进一步的修改.

《[第4周]程序的控制-Python语言程序设计(学习笔记)》

2.5条件判断及组合

《[第4周]程序的控制-Python语言程序设计(学习笔记)》
《[第4周]程序的控制-Python语言程序设计(学习笔记)》
《[第4周]程序的控制-Python语言程序设计(学习笔记)》

guess =eval(input())
if guess >99 or guess<99:
    print("猜错了")
else:
    print("猜对了")

2.6程序的异常处理

《[第4周]程序的控制-Python语言程序设计(学习笔记)》
《[第4周]程序的控制-Python语言程序设计(学习笔记)》
《[第4周]程序的控制-Python语言程序设计(学习笔记)》
《[第4周]程序的控制-Python语言程序设计(学习笔记)》
《[第4周]程序的控制-Python语言程序设计(学习笔记)》
《[第4周]程序的控制-Python语言程序设计(学习笔记)》

2.7单元小结

《[第4周]程序的控制-Python语言程序设计(学习笔记)》

3.实例5:身体质量指数BMI

3.1″身体质量指数BMI”问题分析

《[第4周]程序的控制-Python语言程序设计(学习笔记)》
《[第4周]程序的控制-Python语言程序设计(学习笔记)》
《[第4周]程序的控制-Python语言程序设计(学习笔记)》
《[第4周]程序的控制-Python语言程序设计(学习笔记)》

3.2″身体质量指数BMI”实例讲解

《[第4周]程序的控制-Python语言程序设计(学习笔记)》
《[第4周]程序的控制-Python语言程序设计(学习笔记)》

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="偏胖"
elif bmi>=30:
    who="肥胖"
print("IBM为国外指标为{0}".format(who))

《[第4周]程序的控制-Python语言程序设计(学习笔记)》

height,weight =eval(input("请输入身高(米)和体重(公斤)[用逗号隔开]:"))
bmi=weight/pow(height,2)
print("BMI的数值为:{:.2f}".format(bmi))
nat=""
if bmi <18.5:
    nat="偏瘦"
elif 18.5<=bmi<24:
    nat="正常"
elif 24<=bmi<28:
    nat="偏胖"
elif bmi>=28:
    nat="肥胖"
print("IBM为国内指标为{0}".format(nat))

《[第4周]程序的控制-Python语言程序设计(学习笔记)》

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="偏胖","肥胖"  
elif bmi>=28:
    nat="肥胖"
print("IBM为国外为{0},国内为:{1}".format(who,nat))

3.2″身体质量指数BMI”举一反三

《[第4周]程序的控制-Python语言程序设计(学习笔记)》
《[第4周]程序的控制-Python语言程序设计(学习笔记)》

4.程序的循环结构

4.1单元开篇

《[第4周]程序的控制-Python语言程序设计(学习笔记)》

4.2遍历循环

《[第4周]程序的控制-Python语言程序设计(学习笔记)》
《[第4周]程序的控制-Python语言程序设计(学习笔记)》
《[第4周]程序的控制-Python语言程序设计(学习笔记)》
《[第4周]程序的控制-Python语言程序设计(学习笔记)》
《[第4周]程序的控制-Python语言程序设计(学习笔记)》
《[第4周]程序的控制-Python语言程序设计(学习笔记)》
《[第4周]程序的控制-Python语言程序设计(学习笔记)》
《[第4周]程序的控制-Python语言程序设计(学习笔记)》
《[第4周]程序的控制-Python语言程序设计(学习笔记)》
《[第4周]程序的控制-Python语言程序设计(学习笔记)》
《[第4周]程序的控制-Python语言程序设计(学习笔记)》
《[第4周]程序的控制-Python语言程序设计(学习笔记)》
《[第4周]程序的控制-Python语言程序设计(学习笔记)》

4.3无限循环

《[第4周]程序的控制-Python语言程序设计(学习笔记)》
《[第4周]程序的控制-Python语言程序设计(学习笔记)》

4.4循环控制保留字

《[第4周]程序的控制-Python语言程序设计(学习笔记)》
《[第4周]程序的控制-Python语言程序设计(学习笔记)》
《[第4周]程序的控制-Python语言程序设计(学习笔记)》

4.5循环的高级用法

《[第4周]程序的控制-Python语言程序设计(学习笔记)》
《[第4周]程序的控制-Python语言程序设计(学习笔记)》
《[第4周]程序的控制-Python语言程序设计(学习笔记)》

4.6单元小结

《[第4周]程序的控制-Python语言程序设计(学习笔记)》

5.模块3:random库的使用

5.1random库的基本介绍

《[第4周]程序的控制-Python语言程序设计(学习笔记)》
《[第4周]程序的控制-Python语言程序设计(学习笔记)》

5.2基本随机数函数

《[第4周]程序的控制-Python语言程序设计(学习笔记)》
《[第4周]程序的控制-Python语言程序设计(学习笔记)》
《[第4周]程序的控制-Python语言程序设计(学习笔记)》

程序需要设计再现随机需求就需要设定种子,如果不需要就不用设定种子.只要设置了种子,产生的随机数也相同.

5.3扩展随机数函数

《[第4周]程序的控制-Python语言程序设计(学习笔记)》
《[第4周]程序的控制-Python语言程序设计(学习笔记)》
《[第4周]程序的控制-Python语言程序设计(学习笔记)》
《[第4周]程序的控制-Python语言程序设计(学习笔记)》
《[第4周]程序的控制-Python语言程序设计(学习笔记)》

用3-4个随机函数,则随机函数的能力就增加了.

6.实例6:圆周率的计算

6.1″圆周率的计算”问题分析

《[第4周]程序的控制-Python语言程序设计(学习笔记)》
《[第4周]程序的控制-Python语言程序设计(学习笔记)》

6.2″圆周率的计算”实例讲解

《[第4周]程序的控制-Python语言程序设计(学习笔记)》

为了使代码读起来有可读性,可以在代码后面增加 \ 进行换行,换行后的代码与一行的代码是一样的.

《[第4周]程序的控制-Python语言程序设计(学习笔记)》

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

《[第4周]程序的控制-Python语言程序设计(学习笔记)》
《[第4周]程序的控制-Python语言程序设计(学习笔记)》

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周]程序的控制-Python语言程序设计(学习笔记)》

  • DARTS=1000*1000意思是抛洒点的数量.
  • hits=0.0是目前在圆点内的数量.
  • start=perf_counter()是当前系统的一个值
  • 撒点可以变成遍历循环的点.
  • x,y变成随机数的两个坐标值.random是返回(0,1)的数值.因为使用的是单位正方形,所以可以使用随机数.
  • 用x,y表示随机的抛点,如何知道这个抛点在圆内呢?使用这个点到圆心的距离是否等于1.即(x2+y2)开方是否小于等于1,如果小于1则在圆内.如果(x2+y2)开方大于1,则不在圆内.
  • 如果在圆内,则用hits=hits+1,hits是在圆内出现点的数量.

6.3″圆周率的计算”举一反三

《[第4周]程序的控制-Python语言程序设计(学习笔记)》
《[第4周]程序的控制-Python语言程序设计(学习笔记)》
《[第4周]程序的控制-Python语言程序设计(学习笔记)》
《[第4周]程序的控制-Python语言程序设计(学习笔记)》

7.所有的代码汇总

版本1

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

版本2

#CalBMIv2.py
height, weight = eval(input("请输入身高(米)和体重\(公斤)[逗号隔开]: "))
bmi = weight / pow(height, 2)
print("BMI 数值为:{:.2f}".format(bmi))
nat = ""
if bmi < 18.5:
    nat = "偏瘦"
elif 18.5 <= bmi < 24:
    nat = "正常"
elif 24 <= bmi < 28:
    nat = "偏胖"
else:
    nat = "肥胖"
print("BMI 指标为:国内'{0}'".format(nat))

版本3

#CalBMIv3.py
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))

公式法

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

蒙特卡罗方法

#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))
    原文作者:durian221783310
    原文地址: https://www.jianshu.com/p/998bb97968cf
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞