【问题标题】:Print the value of the series x = 1 + 1/2 + 1/3 + 1/4 + … + 1/n for the user’s input of n打印用户输入 n 的系列 x = 1 + 1/2 + 1/3 + 1/4 + … + 1/n 的值
【发布时间】:2019-05-15 00:44:15
【问题描述】:

Python 2 如何做到这一点。打印系列的值 x = 1 + 1/2 + 1/3 + 1/4 + … + 1/n 用于用户输入的 n。

【问题讨论】:

  • 阅读docs.python.org/3/tutorial - 主题:输入()和for循环。计算一下,打印出来。对于 SO 来说,这并不是一个真正的问题——我们不教授基本的语言用法。请阅读我们在这里所做的事情:tour how to ask 和 on-topic

标签: python


【解决方案1】:

给你:

n = int( input() ) # reading user input
x = 0 
for i in range(1, n + 1): # adding 1/1 + 1/2 + 1/3 + ... + 1/n
    x += 1.0/i

print(x) # => outputs : 2.283333333333333

【讨论】:

  • 对于 Python 2,由于 1/i 的处理方式,这给您的结果为 1。
  • @BillM。固定的 ! ^^
  • 从用户那里读取一个全小写的句子(作为一个字符串)。使用 for 循环将句子中每个单词的首字母大写。
  • 这个呢?发送
  • @KaiShengCheng user_input.title()
【解决方案2】:

在math 或numpy 等Python 包中可能存在谐波级数函数,或类似的处理方式,尤其是在n 值较大时需要高精度时。否则,您可以这样做:

>>> n = 5
>>> print(sum(1.0/i for i in range(1,n+1)))
2.28333333333

请注意,“1.0”对于 Python 2.x 很重要,因此它知道如何处理浮点数。否则事情会在此过程中四舍五入:

>>> print(sum(1/i for i in range(1,n+1)))
1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-18
    • 2010-12-02
    • 1970-01-01
    • 2020-01-10
    • 2011-01-29
    • 2020-02-12
    • 2012-07-30
    相关资源
    最近更新 更多