今天给你们带来了关于圆周率Π的好玩实例。包括计算圆周率,圆周率中找出某个数字的位置,某个数字的出现次数等等。
**1.计算圆周率
**
from decimal import Decimal, getcontext``# 设置精度,前1000位``getcontext().prec = 1000 #值越高需要计算能力越强,可以无限增大` `# 计算每一项的系数``def S(k):` `return Decimal(1)/(16**k) * ( \` `Decimal(4)/(8*k+1) - \` `Decimal(2)/(8*k+4) - \` `Decimal(1)/(8*k+5) - \` `Decimal(1)/(8*k+6))``# 计算π``pi = sum(S(k) for k in range(100))``# 输出结果``print(str(pi))
输出:``3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093835011962794207203364936893065291867748104644374727574583568949679983056854476173673315126727274148610498502781892832516071459181023404064624644220419718878609922998257799775975735118041385284842838545872042914749645279114300601497034674445621618054268484590278822945201855661020199024724960432416007320278000740667265295678410281062598102262058209460873627590719108272742209699236791276943697208722573396299314105853556545388790779923189623504237018764294179246396419853763724856266768144730382030859746013045114408157737514682855195556041122309287193979996181405263665807427507065596791953410162316682584947419710107149195649544387690092056355170122643159538245286928627165509472876464838228750142041482467569136766573282126135322358502607289681940872667213314523558134339257783174102582383092969842845798624055264634232218768599362023105306862391701413918615192260718798231
2.找出圆周率中某个数字的位置
import time``from mpmath import mp``# 设置精度``mp.dps = 1000``# 计算π的值``pi = mp.pi``# 将π转换为字符串``pi_str = str(pi)``# 目标内容``target = "520"``# 开始计时``start_time = time.perf_counter()``# 在π的字符串表示中查找目标内容``index = pi_str.find(target)``digit = index + len(target)``# 停止计时``end_time = time.perf_counter()``if index != -1:` `print("找到了!目标内容为:", target)` `print("在结果字符串中的位置:", index)` `print("第", digit, "位")``else:` `print("未找到目标内容:", target)``# 计算所用时间(以秒为单位)``elapsed_time = end_time - start_time``print("查找所用时间:", elapsed_time, "秒")
输出:``找到了!目标内容为:520``在结果字符串中的位置:326``第 329 位``查找所用时间:3.100000000005876e-06 秒
**3.找出偶数,奇数以及重复数量
**
from mpmath import mp`` ``# 设置精度``mp.dps = 100`` ``# 计算π的值``pi = mp.pi`` ``# 将π转换为字符串``pi_str = str(pi)[:101] # 只取前101位,包括小数点`` ``# 统计数字0-9的出现次数``digit_counts = {str(i): 0 for i in range(10)}``for digit in pi_str:` `if digit.isdigit():` `digit_counts[digit] += 1`` ``# 统计偶数和奇数的数量``even_count = 0``odd_count = 0``for digit in pi_str:` `if digit.isdigit():` `if int(digit) % 2 == 0:` `even_count += 1` `else:` `odd_count += 1`` ``# 输出结果``print("数字0-9的出现次数:")``for digit, count in digit_counts.items():` `print(digit, "出现了", count, "次")`` ``print("偶数的数量:", even_count)``print("奇数的数量:", odd_count)
输出:``数字0-9的出现次数:``0 出现了 8 次``1 出现了 8 次``2 出现了 12 次``3 出现了 12 次``4 出现了 10 次``5 出现了 8 次``6 出现了 9 次``7 出现了 7 次``8 出现了 13 次``9 出现了 13 次``偶数的数量: 52``奇数的数量: 48
4.计算黄金比例
import math``# 计算黄金比例``golden_ratio = (1 + math.sqrt(5)) / 2``print("黄金比例的值:", golden_ratio)
输出:``黄金比例的值:1.618033988749895
5.斐波那契数列
def fibonacci(n):` `if n <= 0:` `return []` `elif n == 1:` `return [0]` `elif n == 2:` `return [0, 1]` `else:` `fib = fibonacci(n-1)` `fib.append(fib[-1] + fib[-2])` `return fib`` ``result = fibonacci(10)``print(result)
输出:``[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
6.计算 √3 和 √2
import math``# 计算 √3``sqrt_3 = math.sqrt(3)``print("√3 =", sqrt_3)``# 计算 √2``sqrt_2 = math.sqrt(2)``print("√2 =", sqrt_2)
输出:``√3 = 1.7320508075688772``√2 = 1.4142135623730951
以上就是“Python中圆周率高级玩法,竟然有人不知道!”的全部内容,希望对你有所帮助。
关于Python技术储备
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、Python必备开发工具
三、Python视频合集
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
四、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
五、Python练习题
检查学习结果。
六、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
最后祝大家天天进步!!
上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以直接微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。