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

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用法相似

eonqxnkq4xa.png

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

pxmf45azd1q.png

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

m04imapqnmb.png

lotz3vkwrkz.png

wxi1ukqm4tw.png

htle1qjmzx2.png

需要掌握的能力

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

能够产生随机整数

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

圆周率案例

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

l3idjluljaz.png

#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

蒙特卡洛算法

0wodvzv2sym.png

#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库的计时方法获得程序运行时间

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

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

计算问题的扩展

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

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

gke1eltnvbt.png

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值