鱼C论坛

 找回密码
 立即注册
查看: 25154|回复: 221

[技术交流] Python:每日一题 15(答题领鱼币)

  [复制链接]
发表于 2017-4-1 19:54:43 | 显示全部楼层
写个简单的。
  1. num = int(input('请输入数字:'))
  2. print(sum([1 / i for i in range(num, 0, -2)]))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 5 反对 0

使用道具 举报

发表于 2017-4-1 20:07:41 | 显示全部楼层
新手·ing 发表于 2017-4-1 20:01
编写一个函数...
冬雪大大要认真读题

太粗心了,重新改过。
  1. def sum1(n):
  2.     return sum([1 / i for i in range(n, 0, -2)])

  3. if __name__ == '__main__':
  4.     num = int(input('请输入数字:'))
  5.     print(sum1(num))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2017-4-1 20:25:45 | 显示全部楼层
gopythoner 发表于 2017-4-1 20:23
你这个就有点欺负人了

嘻嘻
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-1 20:34:03 | 显示全部楼层
gopythoner 发表于 2017-4-1 20:22
这个题直接做的话,很简单,但是我觉得不能以分数的形式进行运行,从数学的意义来讲,不够精确

写个分数版的。
  1. from fractions import Fraction
  2. def sum1(n):
  3.     return sum([Fraction(1, i) for i in range(n, 0, -2)])

  4. if __name__ == '__main__':
  5.     num = int(input('请输入数字:'))
  6.     print(sum1(num))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 2 反对 1

使用道具 举报

发表于 2017-4-1 20:37:04 | 显示全部楼层
gopythoner 发表于 2017-4-1 20:26
为什么用我的函数和你的函数得到的数值的精确度会不一样?
上面一个是我的,下面一个是你的,num=49 ...

还是系统的误差,可能我的是从大到小算的,你的是从小到大算的。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-1 20:40:04 | 显示全部楼层

python原生的支持分数和复数等数字类型,对数学运算很有利。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-30 09:38:37 | 显示全部楼层
checkily 发表于 2018-3-29 23:00
你好,你这个写得不对。题目的要求是计算n个分数的和,你这个只能计算n/2个分数的和。即如果n=4,要求计 ...

原题目是:
编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n
即最后的数字是1/n,而不是n个数字。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-10-14 03:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表