< 表达式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))