Python循环结构 | 您所在的位置:网站首页 › python的遍历循环中的遍历结构可以是哪些数据结构 › 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打印下一个,完成计数循环(特定次) 简单说就是 range 函数的使用方法结合版 具体两个栗子,清晰明了。 1.range(a,b) 可以实现a到b-1的遍历,实现b-a次循环,使循环变量得以扩充 for i in range(2,5): print(i)结果: 2.range(a,b,c)意思是从a开始到b-1,每隔c个数有效,所以下面代码结果是1,3,5 for i in range(1,6,2): print(i)结果: 字符串遍历循环 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=" ")文件遍历循环 for line in fi : fi是一个文件标识符,遍历其每行,产生循环 for line in fi : print(line) shuai qi xiao liu 2,无限循环由条件控制的循环运行方式 while : 反复执行语句块,直到条件不满足时结束 a = 3 while a > 0 : a-=1 print(a) 但如果我们更改循环语句为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("看我看我")从结果也可以发现使用了continue关键字使得 i 等于3时跳出那一次循环,3没有输出,而程序依旧在跑,所以4输出了。然后执行完循环输出看我看我。 实例2break: for i in range(5): if i==3: break print(i) print("看我看我")从结果输出了0,1,2程序结束了,可以看出来break使得跳出了这个循环,继续执行循环外的语句 是不是很清晰了 4,循环的高级用法 当循环没有被break语句退出时,执行else语句块 else语句块作为"正常"完成循环的奖励 这里else的用法与异常处理中else用法相似 5,random库的使用random库是使用随机数的Python标准库 伪随机数: 采用梅森旋转算法生成的(伪)随机序列中元素 random库主要用于生成随机数 使用random库: import randomrandom库包括两类函数,常用共8个 基本随机数函数: seed(), random() 扩展随机数函数: randint(), getrandbits(), uniform(), randrange(), choice(), shuffle()基本随机数函数 随机数种子通过梅森旋转算法生成确定的随机序列,说随机,在计算机中真正的随机数是不存在的,要不然我可能会睡不着觉。啊啊啊,事已至此,先睡一觉。。。。。。。 这里说一下,使用随机数种子,可以使得随机数复现。自己找准需求,合理使用即可。扩展随机数函数 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)) Python的浮点数16位蒙特卡罗方法 撒沙子模拟掉落在四分之一扇形部分的数量,然后算出4份,当模拟数量很大,结果可能更准确,理论来说。这在工程问题应用广泛。模拟的精度肯定没有公式准确,可有些问题不会公式可以解决的。下面我们用代码实现 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 |
CopyRight 2018-2019 实验室设备网 版权所有 |