4.1 程序的分支结构

4.1.1 单分支结构

if :

if True:

print(“条件正确”)

4.1.2 二分支结构

if :

else :

if True:

print(“语句块1”)

else :

print(“语句块2”)

if else

guess = eval(input())

print(“猜{}了”.format(“对” if guess==99 else “错”))

4.1.3 多分支语句

if :

elif :

……

else :

4.1.4 程序的异常处理

try :

except :

try :

except :

异常处理示例1

try :

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

print(num**2)

except :

print(“输入不是整数”)

示例2

try :

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

print(num**2)

except NameError:

print(“输入不是整数”)

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

异常处理的高级使用

try :

except :

else :

finally :

注: finally对应语句块4一定执行

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

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

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

4.3 程序的循环结构

4.3.1 遍历循环

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

for in :

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

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

计数循环(N次)

从0开始

for i in range(N) :

计数循环(特定次)

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

从M开始到N结束,步长为K,大于N则不执行

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

字符串遍历循环

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

for c in s :

例:

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

4.3.2 无限循环

while :

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

4.3.3 循环控制保留字

break 和 continue

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

break仅跳出当前最内层循环

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

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

例1:

>>> for c in "PYTHON" :

if c == "T" :

break

print(c, end="")

输出结果:PY

例2:

>>> s = "PYTHON"

>>> while s != "" :

for c in s :

if c == "T" :

break

print(c, end="")

s = s[:-1]

输出结果:PYPYPYPYPYP

4.3.4 循环的高级用法

循环与else

for in :

else :

while :

else :

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

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

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

例1:

>>> for c in "PYTHON" :

if c == "T" :

continue

print(c, end="")

else:

print("正常退出")

PYHON正常退出

例2:

>>> for c in "PYTHON" :

if c == "T" :

break

print(c, end="")

else:

print("正常退出")

PY

4.4 random库基本介绍

random库是使用随机数的Python标准库

random库包括两类函数,常用共8个

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

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

4.4.1 随机数函数

函数

描述

基本随机数函数

seed(a=None)

初始化给定的随机数种子,默认为当前系统时间     >>>random.seed(10) #产生种子10对应的序列

random()

生成一个[0.0, 1.0)之间的随机小数

扩展随机数函数

getrandbits(k)

生成一个k比特长的随机整数

uniform(a, b)

生成一个[a, b]之间的随机小数

choice(seq)

从序列seq中随机选择一个元素

shuffle(seq)

将序列seq中元素随机排列,返回打乱后的序列

4.5 "圆周率的计算"实例讲解

1、近似公式法

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

2、蒙特卡罗方法

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

—————本文整理自《Python语言程序设计》

嵩天

北京理工大学

python语言程序设计基础答案第四章_《Python语言程序设计基础》第四章笔记相关推荐

  1. python实验指导书答案函数代码复用_#Python学习笔记(5)函数和代码重用,复用

    七段数码管绘制 绘制单段数码管 def drawLine(draw): turtle.pendown() if draw else turtle.penup() #将绘制一条线定义为一个基本函数, 参 ...

  2. python3程序设计基础答案刘德山_北京大学出版社《Java程序设计案例教程》答案【python程序设计案例教程微课版答案】...

    北京大学出版社<Java程序设计案例教程>答案 哎,我也在找不过时北京交通大学出版的 求大学python3程序设计基础答案 刘德山主编 网上找不到 希望大家帮帮忙 答案我也没有,如果你是计 ...

  3. python3程序设计基础答案刘德山_!求大学python3程序设计基础答案 刘德山主编 网上找不到 希望大家帮帮忙...

    <vb程序设计案例教程>课后习题答案 Private Sub Command1_Click() For i = 1 To 10 For j = 1 To 10 If i * j >= ...

  4. python3程序设计基础答案刘德山_《PYTHON3程序设计/唐永华》唐永华 刘德山 李玲著【摘要 书评 在线阅读】-苏宁易购图书...

    章  初识Python 1 1.1  程序设计语言  1 1.1.1  程序设计语言的概念  1 1.1.2  编译与解释  2 1.2  Python语言  2 1.2.1  Python的历史   ...

  5. python学完那部分能写爬虫_[Python]新手写爬虫全过程(已完成)

    今天早上起来,第一件事情就是理一理今天该做的事情,瞬间get到任务,写一个只用python字符串内建函数的爬虫,定义为v1.0,开发中的版本号定义为v0.x.数据存放?这个是一个练手的玩具,就写在tx ...

  6. 小程序分享到朋友圈功能_微信小程序开放分享到朋友圈功能

    2020年7月7日(据说是6日深夜),一个很特别的日子,微信低调地放开了一个功能:微信小程序"分享到到朋友圈",这个看似微小的变化,对微信小程序来说意义重大. 用fenng大的话说 ...

  7. 小程序内嵌h5页面分享_微信小程序webview内页面分享

    因为项目原因,之前在微信小程序内部使用 webview 嵌套了 h5 页面,现在要添加一个新的功能,用户在哪个页面进行了分享,被分享的用户从链接进来就跳转到哪个分享页面. 先了解一下 web-view ...

  8. 小程序开发提示没有npm路径_百度小程序三个框架的各自的特点

    小程序跨平台解决方案方面有Taro.Mpvue.WePY这3个平台,他们各有特点,优势不相上下,他们也在不断不停的迭代更新,都拥有大量的开发者支持,百度也拥抱三方框架,跟他们一起合作,来同步促进小程序 ...

  9. 程序员curd编程是什么_为什么许多程序员讨厌结对编程?

    结对编程是国外非常盛行的一种敏捷开发方式,今天 Google 最顶级的两位程序员 Jeff Dean 和 Sanjay Ghemawat 就是结对编程世界让人颇为津津乐道的人物.不过,有人喜欢有人讨厌 ...

  10. 微信小程序 自动解决分包大小问题_微信小程序-分包 -每包2M

    限制在2M以内.如果超过2M,可以通过分包加载实现,在app.json中配置即可, 小程序划分成不同的子包,在构建时打包成不同的分包,用户在使用时按需进行加载. 在构建小程序分包项目时,构建会输出一个 ...

最新文章

  1. SELinux与强制访问控制系统应用
  2. Java写手机专题分析接口_jeesite学习文档API-内容管理模块
  3. c++中获取蓝图组件_蓝图C++混合编程
  4. input长度随输入内容动态变化 input光标定位在最右侧
  5. matlab单机带负荷系统模型,用MATLAB仿真实现电力系统静态稳定性分析
  6. Java Web学习总结(37)——Filter和Listener详解
  7. Codeforces Round #219 (Div. 2) 解题报告
  8. Linux运维问题解决(1)——Linux 定时任务 crontab 配置及示例
  9. 人生感悟:生活磨练有时也是一种财富
  10. c语言上机题库大一,C语言上机题库(一).doc
  11. 使用jxbrowser在Swing中嵌入网页Web页面
  12. 动易CMS粘贴word图片且图片文件自动上传功能
  13. flash读取程序 msp430_MSP430 flash的操作
  14. 【教程】创建活动报名二维码(活动报名/会议签到扫码,带微信手机号认证)
  15. 十首最美的诗,醉美了整个秋天
  16. javascript清理IE内存
  17. 计算机输入法切换用户,电脑的输入法切换不了怎么办,教您如何解决电脑系统输入法...
  18. 2023最新最全git安装教程,保姆级手把手式安装!!!
  19. 说一下字典的:addEntriesFromDictionary用法
  20. Shell 中的真与假

热门文章

  1. 下载python的步骤ios_下载及安装Python详细步骤
  2. 常用的JVM参数,你现在就记好!
  3. 编程一万小时是种什么样的体验?
  4. 重装IDEA再也不愁了,一招搞定同步个人配置!
  5. 垂垂老矣,一代人的回忆,Adobe Flash 寿命将尽
  6. 每日一皮:经历过的Bug修复过程...
  7. 微服务之旅:从 Netflix OSS 到 Istio Service Mesh
  8. Java 基础搞定了,还能学点什么?
  9. 解决AndroidStudio2.0导入eclipse项目时卡死的问题
  10. html百度地图app,uniapp H5 百度地图(示例代码)