Python⼊门4.2循环结构random库圆周率计算循环结构:
1. 遍历循环:遍历某个结构形成的循环运⾏⽅式
⼀般结构:完整遍历所有元素后结束
计数循环: 从M开始到N结束(不包括N),以K为步长
字符串遍历循环: end = "间隔字符"
列表遍历循环: Is是⼀个列表,遍历每个元素,产⽣循环
⽂件遍历循环: fi是⼀个⽂件标识符,遍历其每⾏,产⽣循环
2. ⽆限循环:由条件控制的循环运⾏⽅式
⼀般结构: 反复执⾏⼀句话,直到条件不满⾜就结束
⽆限循环:
3. 循环控制保留字:break、continue
tips:多层循环嵌套时,保留字只跳出内部循环,外部循环仍有效
s = "PYTTHON"
while s !="":
for c in s:
if c == "T":
break
print(c, end="")
s=s[:-1]
4.循环的拓展
当循环没有被break语句退出时,执⾏else语句块(与异常处理⾥类似)
random库:随机数
其实质是伪随机数,通过梅森旋转算法⽣成⼀系列数字,但由于没有真正的随机数所有称其为随机数。所以只要设置相同的种⼦数,就可以得到⼀组相同的随机数。
1. 基本随机函数:
我们调⽤ random.random() ⽣成随机数时,每⼀次⽣成的数都是随机的。但是,当我们预先使⽤ random.seed(x) 设定好种⼦之后,其中的 x 可以是任意数字,如10,这个时候,先调⽤它的情况下,使⽤ random() ⽣成的随机数将会是同⼀个。
注意:seed()是不能直接访问的,需要导⼊ random 模块,然后通过 random 静态对象调⽤该⽅法。
2.扩展随机函数
python生成1到100之间随机数实例:圆周率计算
蒙特卡罗⽅法
# 公式计算圆周率
'''pi = 0
N = 100 #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))'''
# 蒙特卡罗⽅法
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
# random 返回的是[0,1]之间的⼩数是点的坐标,也就是都在以[0,0]为左下⾓的单位正⽅形中# 使⽤这个点到圆⼼的距离来判断是否在圆内
pi = 4 * (hits/DARTS) # 上⾯计算的是在1/4圆内
time = perf_counter() - start
print("圆周率值是:{}".format(pi))
print("运⾏时间是:{}".format(time))
整数的加减和
s = 0
count = 1
while count <= 966:
if count%2 == 0:
s = s - count
else:
s = s + count
count += 1
print(s)
⽔仙花数:
s = ""
for i in range(100, 1000):
t = str(i)
if pow(eval(t[0]),3) + pow(eval(t[1]),3) + pow(eval(t[2]),3) == i :
s += "{},".format(i)
print(s[:-1])
⽤户三次登录机会
count = 0
while count < 3:
name = input()
password = input()
if name == 'Kate'and password == '666666':
print("登录成功!")
break
else:
count += 1
if count == 3:
print("3次⽤户名或者密码均有误!退出程序。")素数之和
def is_prime(n): # 定义⼀个关于素数的函数
for i in range(2,n):
if n%i == 0:
return False
return True
sum = 0
for i in range(2,100):
if is_prime(i):
sum += i
print(sum)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论