【问题标题】:How to use max command or similar "inside" while command in python?python - 如何在python中使用max命令或类似的“内部”命令?
【发布时间】:2017-07-16 14:48:55
【问题描述】:
def main():

    line = input("How many numbers are included? \n")

    numbers_included = int(line)

    i = 0

    sum = 0
    print("Each number should be placed on separate row")
    while i < numbers_included:
        line = input ("")
        number = int(line)
        sum = sum + number
        i = i + 1
    average = sum / numbers_included
    print("Average is",average)
    print("and the biggest digit is", max(number))

main()

如何在上面的代码中打印最大的数字?

提前致谢!

【问题讨论】:

    标签: python python-2.7 python-3.x max


    【解决方案1】:

    如果你想使用max,你需要收集一个可迭代的数字传递给max()

    ...
    numbers = [] # here
    ...
    while i < numbers_included:
        line = input ("")
        number = int(line)
        numbers.append(number) # here
        ...
    average = sum / numbers_included
    print("Average is", average)
    print("and the biggest digit is", max(numbers))
    

    【讨论】:

      【解决方案2】:

      我认为在这种情况下不使用while 循环最好使用for 循环。并将数字附加到列表并使用sum()max() 列表操作来完成您的工作。

      def main():
      
          line = input("How many numbers are included? \n")
      
          numbers_included = int(line)
          val_sum = 0
          numbers = []
          print("Each number should be placed on separate row")
      
          for _ in range(numbers_included):
              line = int(input ())
              numbers.append(line)
      
          val_sum = sum(numbers)
          average = val_sum / numbers_included
          print("Average is",average)
          print("and the biggest digit is", max(numbers))
      
      main()
      

      【讨论】:

        【解决方案3】:

        或者,为了有趣和简洁

            if __name__ == "__main__":
                n_lines_str = input("How many numbers are included? \n")
                n_lines = int(n_lines_str )
                print("Each number should be placed on separate row")
        
                numbers = [int(input()) for i in range(n_lines)]
                mean = sum(numbers) / len(numbers)
        
                print("Average is {}".format(mean))
                print("Maximum is {}".format(max(numbers)))
        

        【讨论】:

        • 不用打len;你已经知道有多少个数字 (n_lines)。
        • 当然,你知道他们应该是平等的。但是, len 调用是常数时间,这意味着平均值实际上是列表中内容的平均值。否则,我们知道这是一个均值,前提是 len == n_... 但这是一个逻辑级别的间接。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-13
        • 2021-03-11
        相关资源
        最近更新 更多