Python循环结构

简介: Python循环结构

文章目录


程序的循环结构


1,遍历循环


2,无限循环


3,循环控制保留字


4,循环的高级用法


5,random库的使用


6,圆周率的计算


程序的循环结构


1,遍历循环


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


格式:

for <循环变量> in <遍历结构> : 
  <语句块>
# 从遍历结构中逐一提取元素,放在循环变量中
# 由保留字for和in组成,完整遍历所有元素后结束
# 每次循环,所获得元素放入循环变量,并执行一次语句块


应用:


计数循环(n次)


代码格式:


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


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


实例:

想了一个倒计时的实现,代码如下:


import time  #引入time库,好调用sleep函数,实现倒计时的效果
for i in range(5):  #本节所学的循环,循环5次
    print("\r{}".format(4-i),end='')  #通过4-i来实现数字的反转,同时\r模拟单行刷新效果
    time.sleep(0.6)  #睡觉函数,让它每隔0.6S打印下一个,完成
1


计数循环(特定次)


简单说就是 range 函数的使用方法结合版

具体两个栗子,清晰明了。


1.range(a,b) 可以实现a到b-1的遍历,实现b-a次循环,使循环变量得以扩充


for i in range(2,5):
    print(i)


结果:


26.png


2.range(a,b,c)意思是从a开始到b-1,每隔c个数有效,所以下面代码结果是1,3,5


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


结果:


27.png


字符串遍历循环


for c in s : 
  <语句块>


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


for i in "xiaozhang":
    print(i,end=" ")


列表遍历循环


for item in ls : 
  <语句块>


ls是一个列表,遍历其每个元素,产生循环


for item in ["xiaozhang", "and", "xiaoliu"]:
    print(item,end=" ")

31.png


文件遍历循环


for line in fi : 
  <语句块>


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


for line in fi :
  print(line)


2,无限循环


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


while <条件> : 
  <语句块>
反复执行语句块,直到条件不满足时结束
a = 3
while a > 0 :
    a-=1
    print(a)

32.png


但如果我们更改循环语句为a=a+1,此时a将一直大于0,代码将一直跑,若无外力,累死断电死机。。。。。。


3,循环控制保留字


break 和 continue


break跳出并结束当前整个循环,执行循环后的语句(结束当次,-break仅跳出当前最内层循环)


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

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


实例1continue:

for i in range(5):
    if i==3:
        continue
    print(i)
print("看我看我")

2021062800172783.png


从结果也可以发现使用了continue关键字使得 i 等于3时跳出那一次循环,3没有输出,而程序依旧在跑,所以4输出了。然后执行完循环输出看我看我。


实例2break:


for i in range(5):
    if i==3:
        break
    print(i)
print("看我看我")

33.png


从结果输出了0,1,2程序结束了,可以看出来break使得跳出了这个循环,继续执行循环外的语句


是不是很清晰了



4,循环的高级用法


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

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


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


5,random库的使用


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


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

random库主要用于生成随机数


使用random库: import random

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


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


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

randrange(), choice(), shuffle()


基本随机数函数


随机数种子通过梅森旋转算法生成确定的随机序列,说随机,在计算机中真正的随机数是不存在的,要不然我可能会睡不着觉。啊啊啊,事已至此,先睡一觉。。。。。。。


20210628003614228.png


这里说一下,使用随机数种子,可以使得随机数复现。自己找准需求,合理使用即可。


扩展随机数函数


20210628003926767.png

20210628003936550.png

20210628003945578.png

20210628003954841.png


6,圆周率的计算


两种方法:


公式

蒙特卡罗方法

公式法(计算机最适合做循环,这要交给人,不敢想)


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


35.png


Python的浮点数16位


蒙特卡罗方法


撒沙子模拟掉落在四分之一扇形部分的数量,然后算出4份,当模拟数量很大,结果可能更准确,理论来说。这在工程问题应用广泛。模拟的精度肯定没有公式准确,可有些问题不会公式可以解决的。下面我们用代码实现


20210628005143254.png


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

20210628005933570.png


我一共测试了4次,数量级分别为100万,500万,800万和1000万。从代码的运行时间就可以看出。计算机模拟执行1000万次只用了5秒多,是人无法触及的,而且我的处理器中等。可想计算机的强大。


再说这四次模拟的最终结果,因为数量级是依次增大,我们可能觉得会越来越精确,可实际上并不如此,通过数据可以发现第二次数量级为500万最接近,值得我们深思。





目录
打赏
0
0
0
0
2
分享
相关文章
Python接口自动化测试框架(基础篇)-- 流程控制之循环语句for&while
本文介绍了Python中的循环语句,包括while和for循环的使用,range()函数的运用,以及continue、break和pass关键字的说明,同时提出了关于while循环是否能与成员运算符结合使用的思考。
91 1
Python接口自动化测试框架(基础篇)-- 流程控制之循环语句for&while
[oeasy]python043_自己制作的ascii码表_循环语句_条件语句_缩进_indent
本文介绍了如何使用Python制作ASCII码表,回顾了上一次课程中`print`函数的`end`参数,并通过循环和条件语句实现每8个字符换行的功能。通过调整代码中的缩进,实现了正确的输出格式。最后展示了制作完成的ASCII码表,并预告了下一次课程的内容。
46 2
|
5月前
|
在 Python 中实现各种类型的循环判断
在 Python 中实现各种类型的循环判断
76 2
|
5月前
|
Python 中,循环判断
Python 中,循环判断
92 1
[oeasy]python039_for循环_循环遍历_循环变量
本文回顾了上一次的内容,介绍了小写和大写字母的序号范围,并通过 `range` 函数生成了 `for` 循环。重点讲解了 `range(start, stop)` 的使用方法,解释了为什么不会输出 `stop` 值,并通过示例展示了如何遍历小写和大写字母的序号。最后总结了 `range` 函数的结构和 `for` 循环的使用技巧。
61 4
|
6月前
|
【10月更文挑战第19天】「Mac上学Python 30」基础篇11 - 高级循环技巧与应用
本篇将介绍更深入的循环应用与优化方法,重点放在高级技巧和场景实践。我们将讲解enumerate()与zip()的妙用、迭代器与生成器、并发循环以及性能优化技巧。这些内容将帮助您编写更高效、结构更合理的代码。
90 5
|
6月前
|
【10月更文挑战第18天】「Mac上学Python 29」基础篇10 - 循环结构与迭代控制
在Python中,循环结构是控制程序执行的重要工具。通过学习本篇内容,您将掌握如何使用for循环和while循环来高效地处理重复任务,并了解break、continue和else的使用方式。同时,我们还会探索嵌套循环和典型应用场景中的实际应用。
70 2
|
6月前
|
Python 循环语句的高级应用与深度探索
本文深入探讨了Python中循环语句的高级应用,包括`for`循环遍历字典获取键值、同步遍历多个序列,以及`while`循环结合条件判断和异常处理。通过嵌套循环实现了矩阵乘法,并介绍了如何优化循环以提升程序性能。示例代码展示了这些技术的实际应用。
78 15
Python循环语句
【10月更文挑战第7天】
78 2
|
6月前
|
【Python】循环语句(while、for)、continue、break
【Python】循环语句(while、for)、continue、break
109 1

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等