python编写函数计算圆周率

  计算圆周率。存在圆心在直角坐标系原点且半径为 1 的圆及其外切正方形。为计算方便,仅考虑位于第一象限的四分之一正方形和四分之一圆。随机生成该四分之一正方形中一系列点,散布于四分之一圆内比例即为圆周率四分之一。散步点越多,结果越精确,耗时也越长。
from random import random
from math import sqrt

N = eval(input("请输入次数:"))
K = 0
for i in range(1, N + 1):
    x, y = random(), random()
    dist = sqrt(x ** 2 + y ** 2)
    if dist <= 1.0:
        K = K + 1
pi = 4 * (K / N)
print("圆周率值:{}".format(pi))

random 库的介绍

random库是产生伪随机数的。其中函数分类有(21个)

import random

random.random()          # 返回左闭右开的区间(0.0,1.0) 中的一个浮点数
# -random(n)               返回左闭右开的区间(0,n)的一个浮点数
random.randrange(n)      # 返回给定区间里的一个随机整数
# -randrange(m, n)  
# -randrange(m, n, x)
random.choice(s)         # 从序列s里随机选择一个元素

其中该算法中所用的方法是基本随机函数: random.random()返回的是一个 0~1之间中随机的一个浮点数

math库的介绍

math库是python的标准库,提供了诸多的数学函数,可以使用整数和浮点数的数学运算

math库常用函数:

import math

math.sqrt()                # 计算平方根,返回的数据为浮点型数据
math.pow(底数, 指数)        # 计算一个数值的N次方
math.fabs()                # 计算一个数的绝对值
math.pi                    # 圆周率

eval() 函数

eval()函数  可以转化字符串的类型 并且  执行一个字符串表达式,并返回表达式的值

test1 = "[1, 2, 3, 4]"
test2 = eval(test1)

# 输出结果    print(test1, type(test1))      ========> [1, 2, 3, 4]  <class 'str'>
#          - print(test2, type(test2))      ========> [1, 2, 3, 4]  <class 'list'>


test3 = "{'a': 1, 'b': 2}"
test4 = eval(test3)

# 输出结果    print(test1, type(test1))      ========> {'a': 1, 'b': 2} <class 'str'>
#          - print(test2, type(test2))      ========> {'a': 1, 'b': 2} <class 'dict'>



test5 = "30 * 9"
test6 = eval(test5)

# print(test1, type(test5))                ========> 30 * 9 <class 'str'>
# print(test2, type(test6))                ========> 270 <class 'int'>

上一篇:20210111 装饰器之案例剖析


下一篇:20210108 装饰器详解