2022-10-28 得出正确并满意的结果。1

第1关先分解

分解哪些呢?

1-1/3+1/5-1/7+1/9…

这样的公式共同点是什么呢??

经过煎熬一般的找寻。我发现了几个共同点。

多说一句,我个人认为找出设计的共同点,是循环能否成功的一个核心。

从我用1年时间做完第5章循环的50多道题来得出的心得,就是找到他们之间的共同点,利用共同点和不同点来设计循环。
1-7这道题,我之前只会用一些简单的方式解决它。循环都没有用在这里。因为我觉得这个用减号然后加号不断重复,稍微复杂的循环。和我之前学到的一直累加或者累减是不一样的。

不断尝试和不断否定才是王道2,我进行了如下的分解。

1 除法共同点3

我发现整个公式里除了1以外,大家都是除1/3、1/5、1/7…所以先定义这个我能找到共同点.

def division_num(num):div_vision = 1 / numreturn div_vision

结果如下:

2 加减共同点4

π公式里的减、加不断重复,但我开始的时候选择先忽略1减去,先找1/3+1/5代码,然后累计对这段相加代码进行相减处理如下:

def plus_num(num):sum_num = 0for i in range(num, num + 3, 2):sum_num += division_num(i)return sum_numdef sub_tra_num(num):sub_num = 0for i in range(3, num + 1, 4):sub_num -= plus_num(i)return abs(sub_num)

abs(sub_num)发现该结果出现负值,所以用了abs消除负值

结果 0.179464979 和excel得出结果0.820935不一样

2.1找寻方向出现了问题

总结了先找1/3+1/5代码,发现这其实相当于用括号将1/3+1/5括起来进行相加。这似乎并不是对的。
于是我又弄出了第4版。

def division_num(num):a = 1 / numreturn adef plus_num(num):sum_num = 0sub_traction = 0for i in range(1, num + 1):sub_traction -= division_num(i)print(sub_traction)sum_num += division_num(i + 2)print(4 * sum_num)# a = abs(sub_traction) + sum_num# print(a)def sub_tra_num(num):sub_num = 0for i in range(1, num + 1, 4):sub_num -= plus_num(i)return abs(sub_num)

我尝试将加法封装到减法里。然后直接运行。结果自不必说了。也是不对的。

今天早上上班的时候。脑子放空了。什么都没想,上班的时候。重新做了第5个版本,这个版本并不是多么高深,没有达到我所想的不断识别加减符号或者加减来就进行计算。

也许就和很多汽车制造厂最初的样子,买的车,修修用用。我的编程之路也是这样磕磕绊绊吧。

解题思路如下:

1、老样子先进行除法的定义。

def division_num(num):div_vision = 1 / numreturn div_vision

2、拆分,也是今天成功的原因,将1-1/3+1/5划分为第一定义def sum_sun_num(num)

# slices one
def sum_sub_num(num):for i in range(1, num - 8):one_out_num = division_num(i) - division_num(i + 2) + division_num(i + 4)# print(one_out_num)return one_out_num

3、再拆分 1/7+1/9-1/11+1/13 这两个公式的不共同的地方就算多了个减号,我先把减号拿走。接下来我眼前就是两个一样的可以复制的公式。但是我做不到。那我就分开。而且请注意1/7前面是减号。

# slices two
def sum_sub_second_num(num):for i in range(num, num + 3):two_out_num = -division_num(i) + division_num(i + 2)# print(two_out_num)return two_out_num
其实大家应该发现我不过就是把这个算式进行了简单的拆分。而不是最初设想的通过一个循环来完成。既然我造不出宇宙飞船。那我就先早个民用小飞机吧!

接下来请看我的民用小飞机的组合。

def main():a = sum_sub_num(13) + sum_sub_second_num(7) + sum_sub_second_num(11) - division_num(15)print("pi %.8f" % (a * 4))

是的你看到这里发现了。这个算式竟然是好几个def组成的。def目的就是将我们的程序从零件组成各个不同的成套。然后再组装成一个完整的设备。

好我今天的分享就结束了。非常感谢大家。谢谢大家的关注。


  1. 本结果为1/15为结束 ↩︎

  2. 在这里方便阅读而按顺序写出。但实际是完全没有顺序和逐步总结的,请大家见谅。 ↩︎

  3. 这是经历了3个版本不断揣摩后做出的选择,不太高瞻远瞩,而是紧盯眼前。 ↩︎

  4. 如果说折磨人那么这个就算最折磨人和痛苦的。5个版本4个半都是在解决这个问题。 ↩︎

《python语言程序设计》第1章第7题def功能求pi π 设计思路先分相关推荐

  1. Python语言程序设计第七章 - 组合数据类型 - 6.1

    目录 Python语言程序设计第七章 - 组合数据类型 集合运算 集合的关系 集合综合练习 元组元素抓7 元组解包 升序降序 截取部分元素 判断元素书否在列表中存在 头尾对调 翻转列表 指定元素对调 ...

  2. 关于python中程序流程结构-Python语言程序设计(第4章:程序结构设计)

    4.1 算法 [1]计算机程序可视为数据结构和算法的集成,这种集成体现为以下两方面的内容:数据是程序实现的基础:算法要依靠程序来完成功能. [2]算法的特点:有穷性:确定性:零个或多个输入:一个或多个 ...

  3. python 循环赋值_计算机二级Python语言程序设计 第2章Python语言基本语法元素

    第二章学习知识导图 本章概述:本章目的是了解基础的Python相关知识 考点主要是: 1) 程序的基本语法元素:程序的格式框架.缩进.注释.变量.命名.保留字.数据类型.赋值语句.引用 2) 基本输入 ...

  4. [转载] 语言程序设计第4版黄洪艺_计算机二级教程 Python语言程序设计 第8章python计算生态...

    参考链接: Python | 接球比赛 第八章学习知识导图 考点主要是: 1) 基本的Python内置函数 2) 了解Python计算生态 3) 作者归纳:这章看一下基本概念,主要认真看一下代码和代码 ...

  5. 字符串是单一字符的无序组合吗_计算机二级教程 Python语言程序设计 第6章组合数据类型...

    第6章组合数据类型 第六章学习知识导图 考点主要是: 1) 组合数据类型的基本概念 2) 列表类型:定义.索引.切片 3) 列表类型的操作:列表的操作函数.列表的操作方法 4) 字典类型:定义.索引 ...

  6. Python 语言程序设计(3-1)字符串处理函数和相关功能

    关于如何进行函数编写 最简单的一个问题 365天,每天进步0.01,一年后取得的成就和365天,只有在工作日进步,休息日不进步,且倒退0.1的人相比,工作日努力的参数应该是多少? #DaydayupQ ...

  7. python随机字母不重复_PTA Python语言程序设计(7)7-2 输出10个不重复的英文字母 (15分)...

    随机输入一个字符串,把最左边的10个不重复的英文字母(不区分大小写)挑选出来. 如没有10个英文字母,显示信息"not found" 题意很清楚,我们先提取题中条件 输出的字符不能 ...

  8. 数据结构与算法python语言实现-第四章答案

    数据结构与算法python语言实现-第四章答案 4.1 def findmax(S, index=0):if index == len(S) - 1:return S[index]max=findma ...

  9. 2022年计算机二级考试Python语言程序设计复习题及答案

    1.关于二维数据描述错误的是( A ) A.二维列表对象输出为CSV文件,将遍历循环和字符串的split()方法相结合 B.二维数据由关联关系的数据构成 C.二维数据是一维数据的组合形式,由多个一维数 ...

最新文章

  1. 语义SLAM近5年主要技术进展及研究趋势
  2. 程序内存区域分配(五个段)--终于搞明白了
  3. 【DL4J速成】Deeplearning4j图像分类从模型自定义到测试
  4. OpenStack运维面试(1)
  5. request download - 两个队列的研究
  6. iOS 通知中心(NSNotificationCenter)
  7. 2年工作经验进 初创公司_沟通是关键:通过两家初创公司获得的成长经验教训+找工作...
  8. Web API 设计摘要
  9. 华为云苏光牛:生态建设是数据库产业发展非常重要的一环
  10. java 可插拔注解_20200311 8. 注解和可插拔性
  11. bug君你好啊之访问servlet时出现此程序可以连接到 Web 服务器,但是因为地址问题无法找到该网页。
  12. 【Qt串口调试助手】1.7 - QLabel标签插入链接,修改Qt应用图标
  13. decimal简单问题
  14. linux 在ftp gt 下登录,cutftp显示的是啥意思?
  15. ubuntu code::blocks 汉化(附汉化包)
  16. 《统计学》笔记:第2章 数据的搜集
  17. eclipse 导入项目后,在工程图标上出现红叉,但是工程中的文件并没有提示错误的解决方法
  18. Ajax读书笔记(四)
  19. Description Resource Path Location Type The import collides with another import statement
  20. 对数据运营工作的思考及优化方向

热门文章

  1. python职业发展规划-python职业发展
  2. 使用git在项目中的一些经验
  3. docker安装zookeeper3.4
  4. 联想拯救者r9000p原装海力士固态4k64位读写慢的解决
  5. 苹果电脑python编程软件下载_Python Mac软件下载-Python for Mac(Python编程工具) v3.10.0免费版 - Mac天空...
  6. 图书借阅管理系统微信小程序的开发 报告+开题报告+PPT+SSM项目源码及数据库文件+演示视频
  7. oracle 280000,续-实例恢复- ORACLE instance shut down
  8. 海皇戟3黑成功,刚入门黑苹果,用5个软件搞定,菜鸟级双系统安装
  9. ElasticSearch windows部署(避坑干货)
  10. API 接口设计规范