第四章 程序的控制结构(蒙特卡洛法算pi、程序异常处理)(random库、try-except)
本章主要是:条件语句 循环语句
1.蒙特卡洛法 计算 pi 的值:
抛点,以1/4的 圆所占正方形的面积比例 去计算pi
import time #用于计算程序所用时间
import math
import random
t=time.process_time()
squart=10000
count=0
for i in range (squart+1):
a,b=random.random(),random.random()
rr=a**2+b**2
if rr <= 1:
count +=1
pi=4*count/squart
print("pi的值为:{:.10f}".format(pi))
t -= time.process_time()
print("所用时间为:{:.3f}".format(-t))
结果显示:
pi的值为:3.1516000000
所用时间为:0.016
2.程序的异常处理
异常处理:try-except语句
有这么一段语句:
num=eval(input("请输入一个整数:"))
print(num**2)
如果输入的是数字,例如:
请输入一个整数:10
100
如果输入的不是数字,例如:
请输入一个整数:b
Traceback (most recent call last):
File "F:\Python\01练习\001.py", line 1, in <module>
num=eval(input("请输入一个整数:"))
File "<string>", line 1, in <module>
NameError: name 'b' is not defined
此时,出现异常类型:NameError
使用 try-except 语句实现异常处理,如下:
try:
num=eval(input("请输入一个整数:"))
print(num**2)
except NameError:
print("输入错误,请输入一个整数!")
结果显示:
请输入一个整数:b
输入错误,请输入一个整数!
3.异常的高级用法:
(1)try-- except NameError-- except
(2)try-- except-- else-- finally
try:
str="ABCDEFG"
idx=eval(input("请输入一个整数(0-6):"))
print(str[idx])
except NameError:
print("输入错误,请输入一个数!")
except:
print("其他错误!")
这段程序中:
如果输入的不是一个数,返回:输入错误,请输入一个数!
如果输入的是数但不是[0:6]之间的整数,返回:输入错误!