python的程序控制结构-循环结构与random库使用和圆周率案例--pyt

python的程序控制结构-循环结构与random库使用和圆周率案例--python-7-days

循环结构

- for…in 遍历循环: 计数、字符串、列表、文件…

- while无限循环

- continue和break保留字: 退出当前循环层次

- 循环else的高级用法: 与break有关

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

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

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

<语句块>

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

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

遍历循环的应用:计数循环(N次)

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

for i in range(N) :

<语句块>

>>> for i in range(5):

print(i)

0

1

2

3

4

遍历循环的应用:计数循环(特定次)

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

<语句块>

>>> for i in range(1,6,2):

print("Hello:",i)

Hello: 1

Hello: 3

Hello: 5

遍历循环的应用:字符串遍历循环

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 [123,"PY", 456] :

print(item, end=",")

123,PY,456,

遍历循环的应用:文件遍历循环

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

优美胜于丑陋

明了胜于隐晦

简洁胜于复杂

>>> for line in fi :

print(line)

优美胜于丑陋

明了胜于隐晦

简洁胜于复杂

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

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

>>> a = 3

>>> while a > 0 :

a = a - 1

print(a)

2

1

0

>>> a = 3

>>> while a > 0 :

a = a + 1

print(a)

4

5

… (CTRL + C 退出执行)

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

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

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

>>> for c in "PYTHON" :

if c == "T" :

continue

print(c, end="")

>>> PYHON

break仅跳出当前最内层循环

>>> s = "PYTHON"

>>> while s != "" :

for c in s :

if c == "T" :

break

print(c, end="")

s = s[:-1]

>>> PYPYPYPYPYP

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

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

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

for ……else……

>>> for c in "PYTHON" :

if c == "T" :

continue

print(c, end="")

else:

print("正常退出")

>>> PYHON正常退出

>>> for c in "PYTHON" :

if c == "T" :

break

print(c, end="")

else:

print("正常退出")

>>> PY

random库

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

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

random库主要用于生成随机数

使用random库: import random

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

>>> import random

>>> random.seed(10)

>>> random.random()

0.5714025946899135

>>> random.random()

0.4288890546751146

>>> random.seed(10)

>>> random.random()

0.5714025946899135

>>> random.seed(10)

>>> random.random()

0.5714025946899135

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

randrange(), choice(), shuffle()

需要掌握的能力

能够利用随机数种子产生"确定"伪随机数

能够产生随机整数

能够对序列类型进行随机操作

圆周率案例

使用圆周率的近似计算公式

#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("pi = {0},k = {1}".format(pi,k))

print("圆周率值是:{}".format(pi))

圆周率值是: 3.141592653589793

蒙特卡洛算法

#CalPiV2.py

from random import random

from time import perf_counter

DARTS = 1000*1000*10

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("y圆周率值是:{}".format(pi))

print("运行时间是:{:.5f}s".format(perf_counter()-start))

理解方法思维

数学思维:找到公式,利用公式求解

计算思维:抽象一种过程,用计算机自动化求解

谁更准确? (不好说…)

程序运行时间分析

使用time库的计时方法获得程序运行时间

改变撒点数量,理解程序运行时间的分布

初步掌握简单的程序性能分析方法

计算问题的扩展

不求解圆周率,而是某个特定图形的面积

在工程计算中寻找蒙特卡罗方法的应用场景

蒙特卡洛算法非常厉害的算法

记得曾经好像学过蒙特卡洛算法的推导,当时觉得又复杂又难懂,没想到现在看来还挺有意思的,有空再去推一遍~

python的程序控制结构-循环结构与random库使用和圆周率案例--pyt相关教程

python在哪些控制结构中使用else保留字_python的程序控制结构-循环结构与random库使用和圆周率案例--pyt...相关推荐

  1. python多分支结构案例_python的程序控制结构-分支结构与身体质量指数案例--python-6-da...

    python的程序控制结构-分支结构与身体质量指数案例--python-6-da python的程序控制结构-分支结构与身体质量指数案例--python-6-days 程序控制结构 - 单分支 if ...

  2. python入门之控制结构-循环结构_Python 入门之控制结构 - 循环结构(一)

    第1关:While 循环与 break 语句 程序的第三大结构是循环结构.在此结构中,通过一个判断语句来循环执行一个代码块,直到判断语句为假时跳出循环.循环语句分为while循环.for循环.循环嵌套 ...

  3. Python入门之控制结构 - 循环结构

    Python入门之控制结构 - 循环结构 第1关:While循环与break语句 第2关:for循环与continue语句 第3关:循环嵌套 第4关:迭代器 第1关:While循环与break语句 · ...

  4. python入门之控制结构循环结构_python入门教程04-05(python语法入门之流程控制)...

    本次课程介绍了流量的控制,介绍分支结构和循环结构的介绍和用法,实操介绍,我们一起来学习一下吧~~~ 一 引子: 流程控制即控制流程,具体指控制程序的执行流程,而程序的执行流程分为三种结构:顺序结构(之 ...

  5. python程序的循环结构_四、python程序结构之循环结构

    循环结构的应用场景 如果在程序中我们需要重复的执行某条或某些指令,例如用程序控制机器人踢足球,如果机器人持球而且还没有进入射门范围,那么我们就要一直发出让机器人向球门方向奔跑的指令.当然你可能已经注意 ...

  6. python随机猜数字游戏_Python小游戏——猜数字教程(random库教程)

    今天来开发一个简单的数字逻辑游戏,猜数字(数字炸弹) 首先开发游戏第一件事,了解需求. 猜数字游戏规则: 计算机随机生成一个指定范围的数字,由玩家来猜测, 之后计算机会根据玩家提供数字来与自己生成的数 ...

  7. Python中的程序控制结构 顺序结构和选择结构

    目录 Python中的程序控制结构(一) 1.程序中的组织结构 2.顺序结构 3.对象的布尔值 4.分支结构 4.1 单分支if结构 4.2 双分支if...else结构 4.3 多分支if...el ...

  8. python用random函数猜字母_Python小游戏——猜数字教程(random库教程)

    今天来开发一个简单的数字逻辑游戏,猜数字(数字炸弹) 首先开发游戏第一件事,了解需求. 猜数字游戏规则: 计算机随机生成一个指定范围的数字,由玩家来猜测, 之后计算机会根据玩家提供数字来与自己生成的数 ...

  9. python哲学内容 多行胜于单行_Python程序设计(胡新明)-中国大学mooc-题库零氪

    一.引子(51min) 章节一测验 1."程序"就是做一件事情或者解决一个问题所采取的一系列()步骤. A.固定 B.无序 C.随机 D.重复 2.Python语言程序中的语句的行 ...

最新文章

  1. 简单介绍C++中常量与指针
  2. Android模拟自定义浏览器和打开另一个Ativity(06)
  3. 008-SDK框架之LYWSDKPlatformManager.h
  4. Linux下百度网盘一直进入不了登陆界面的解决方案
  5. tcc读写文本txt文件
  6. 带有示例的Python date strftime()方法
  7. springBoot 简单优雅是实现文件上传和下载
  8. vue = 什么意思_Vue导入模块import xxx from '@/xxx'中的@是什么含义?
  9. android应用内存不断膨胀,在android中膨胀简单的xml布局时出现内存不...
  10. org.apache.shiro.session.UnknownSessionException: There is no session with id [xxxx]的解决方案
  11. Android开发技术周报 Issue#102
  12. 彼得.泰尔:认知未来是投资人的谋生之道
  13. AI芯片发展的前世今生
  14. C++ Primer 第三版电子版PDF
  15. echarts地图整体渐变色
  16. Python爬取图片显示似乎不支持此文件格式
  17. 基于springboot+vue的水果销售系统附代码
  18. Files and Directories
  19. 正在完成android更新三星,手机实时动态:这些都是三星手机正在获取Android 10
  20. burpsuit 抓取https包,证书问题,此证书已在此前安装为一个证书权威机构

热门文章

  1. SAP Spartacus Media Component
  2. SAP CRM IBASE Solution manager callstack
  3. 使用SAP Analytics Cloud展示全球新冠肺炎确诊总人数的分布情况
  4. SAP Fiori Elements - How complex binding defined in XML view is parsed
  5. 有道云笔记里几种我觉得比较有用的操作
  6. SAP物料主数据创建时间和创建个数的函数关系
  7. SAP Marketing Cloud功能简述(二) Target Group
  8. React里所有已经加载的module列表
  9. SAP Marketing Engagement Management
  10. 使用nodejs创建Marketing Cloud的contact数据