Python基础(五)控制语句与随机数

< 表达式1 > if < 条件 > else < 表达式2 >

a=1
print(2 if a>0 else 3)

x and y 逻辑与
x or y 逻辑或
not x 逻辑非

异常处理

try:
    print("请输入数字")
    a=int(eval(input()))
except :            #发生异常
    print("输入错误")
else:               #不发生异常
    print("输入正确")
finally:            #无论是否发生异常都会执行
    print("finish")

for < 循环变量> in <遍历结构> (无论便利结构是什么样,循环都会遍历其中每一个元素)
for line in fi 遍历文件中的每一行(fi为文件标识符)

break 结束循环
continue 跳入下次循环

ctrl+c退出程序

random库
种子相同,产生的随机数序列也相同(采用梅森旋转算法)
random.seed(a=None) 产生随机数种子,默认为第一次random的当前系统时间
random() (0,1)之间的小数
randint(a,b) [a,b]间的整数
randrange(m,n[,k]) 生成[m,n)之间步长为k的随机整数
getrandbits(k) 生成一个k比特长的随机整数
uniform(a,b) 生成一个[a,b]之间的随机小数
choise(seq) 从序列seq中随机选择一个元素
shuffle(seq) 将序列seq中元素随机排列,返回打乱后的序列

最后附上一段用两种不同的方法求圆周率

#数学方法
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))


#蒙特卡洛方法(工程求解,计算思维)
from random import random
from time import perf_counter
DARTS=1000*100
a=0
while True:     #我这改成了无限循环,一般计算机算到第三次时间就比较久了
    a+=1
    DARTS*=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("圆周率值是:{}".format(pi))
    print(" DARTS:{}".format(DARTS))
    print("第{}次运行时间是:{}s".format(a,perf_counter()-start))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值