【问题标题】:Create a function that calculates the sum of a series创建一个计算序列总和的函数
【发布时间】:2017-10-16 03:07:33
【问题描述】:

# 编写一个名为 series_sum() 的函数,提示用户输入非负数 # 整数 n。如果用户输入一个否定的函数应该返回 None # 否则该函数应返回以下系列的总和, # 1000 + (1/1)**2 + (1/2)**2 + (1/3)**2 + (1/4)**2 ... + (1/n)**2

def series_sum():
    n = input("Please enter a number greater than 0")

【问题讨论】:

    标签: python python-3.x


    【解决方案1】:

    函数需要一个参数,n。

    Next.... for the sum... range(1,n+1) 将创建一个从 1 到 n 的可迭代对象,您可以在 for 循环中使用该对象。在 else 语句下,创建一个变量“total”。它以 1000 开头。对于 1 到 n 范围内的每个值,您将在该值的平方上加上 1。

    def series_sum():
         n = input("Please enter an integer greater than 0")
         n = int(n)
         if n < 0:
              return None
         else:
              numbers = range(1,n+1)
              total = 1000 
              for number in numbers:
                   total = total + 1/n**2
              return total
    

    【讨论】:

      【解决方案2】:

      全部功能:

      def series_sum(n):
          if n >= 0:
              return 1000 + sum((1/x) ** 2 for x in range(1, n + 1))
      

      或具有相同的功能,但明确否定:

      def series_sum(n):
        if n >=0:
           return 1000 + sum((1/x) ** 2 for x in range(1, n + 1))  
        if n < 0:
           return None
      

      【讨论】:

      • 如果您是 SO 新手,请不要忘记对有帮助的答案、cmets 等进行投票。 :)
      【解决方案3】:
      def series_sum():
          n = input("Please enter a number greater than 0")
          if type(n,str):
              try:
                  n = int(n)
              except:
                  print 'enter integer value'
                  return
          if n >=0:
              sum = 1000
              for i in range(1,n+1):
                  sum += (1./i)**2
              return sum
          return                
      

      【讨论】:

      • 这是点击错误发生的。我还在努力。
      猜你喜欢
      • 2021-02-20
      • 1970-01-01
      • 2019-03-03
      • 1970-01-01
      • 2021-03-30
      • 1970-01-01
      • 2015-10-29
      • 1970-01-01
      • 2022-01-09
      相关资源
      最近更新 更多