循环结构
遍历循环
for <循环变量> in <遍历结构>:
<语句块>
-依次把每个元素迭代出来;
-每次循环,所获得的元素放入循环变量,并执行一次语句块.
计数循环(N次)
for i in range(m,n,k):
<语句块>
计数循环(特定次)
for i in range(1,6):
print(i)
for i in range(1,6.2):
print("hello:",i)
-步长为2
字符串遍历循环
for c in "python12345":
print(c,end=",")
p,y,t,h,o,n,1,2,3,4,5,
列表遍历循环
for item in ls :
<语句块>
-item是一个列表,遍历其中的元素.
文件遍历循环
for line in fi :
<语句块>
-fi是一个文件标识符,遍历其每行,产生循环.
无限循环
由条件控制的循环运行方式
while <条件> :
<语句块>
反复执行语句块,直到条件不满足时结束.
循环控制保留字break和continue.
break
在循环中,break语句可以提前退出循环.
n = 1
while n <= 100:
if n > 10: # 当n = 11时,条件满足,执行break语句
break # break语句会结束当前循环
print(n)
n = n + 1
print('END')
continue
在循环过程中,也可以通过continue语句,跳过当前的这次循环,直接开始下一次循环.
for c in "python" :
if c == "t" :
continue
print(c,end =",")
运行结果为
pyhon
随机数函数
函数 | 功能 |
---|---|
seed(a) | 由给定种子 在梅森旋转算法下 形成随机数列(相同种子产生的随机数列相同)(如果不用seed,则默认为当前系统时间) |
random() | 产生[0.0,1.0)之间的随机小数 |
randint(a,b) | 产生一个【a,b】之间的随机整数 |
getrandbits(s) | 产生一个k比特长的随机数 |
uniform(a,b) | 产生a,b之间的随机小数 |
randrange(a,b,k) | 产生在[a,b)中的随机数列,k为步长 |
choice(seq) | 从序列seq中随机选择一个数 |
shuffle(seq) | 把序列seq随机打乱 |
例:利用蒙特卡洛方法计算圆周率
from random import random
from time import perf_counter #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))