【问题标题】:find out min and max in python 3在 python 3 中找出最小值和最大值
【发布时间】:2018-07-03 10:18:19
【问题描述】:

5.2 编写一个程序,反复提示用户输入整数,直到用户输入“完成”。输入“完成”后,打印出最大和最小的数字。如果用户输入的不是有效数字,请使用 try/except 捕获它,并发出适当的消息并忽略该数字。输入 7、2、bob、10 和 4 并匹配下面的输出。

largest = None
smallest = None
while True:
    num = input("Enter a number: ")
    if num == "done": 
        break
    print(num)

print("Maximum", largest)

而且输出一定是这样的

Invalid input
Maximum is 10
Minimum is 2

有人请帮我解决这个问题?????? enter image description here

【问题讨论】:

  • Stack Overflow 不是我的家庭作业服务。
  • 请分享您正在编写的代码以及您在其中面临的具体问题。 ..
  • 看起来像是一道作业题。

标签: find try-catch max min except


【解决方案1】:
largest = None
smallest = None

while True:
    num = input("Enter a number: ")
    if num == "done" :
        break

    try:
        n = int(num)
    except:
        print ('Invalid input')
        continue


    if largest is None or n > largest:
        largest = n
    if smallest is None or n < smallest:
        smallest = n

print("Maximum is", largest)
print("Minimum is", smallest)

【讨论】:

    【解决方案2】:
    largest = None
    smallest = None
    while True:
        try:
            num = input("Enter a number: ")
            if num == "done":
                break
            num = int(num)
            if largest is None or largest < num:
                largest = num
            elif smallest is None or smallest > num:
                 smallest = num
        except ValueError:
            print("Invalid input")
    
    print ("Maximum is", largest)
    print ("Minimum is", smallest)
    

    【讨论】:

    • 欢迎来到 Stack Overflow。您的答案似乎与 Ernest 一年前发布的答案略有不同,但在功能上是相同的。鉴于这是一个解决某些人 2018 年家庭作业的问题,而且您还没有解释为什么您认为您的解决方案改进了 Ernest 的问题,所以它可能真的不值得发布。
    • 希望它能解决问题,但请添加对代码的解释,以便用户完全理解他/她真正想要的。
    【解决方案3】:
    #Print out largest and smallest number
    largest=None
    smallest=None
    while True:
        n = input('Enter a number: ')
        if n == "done":
            break    
        try:
            num=int(n)
            if largest is None:
                largest = num
            elif num > largest:
                largest = num
    
            if smallest is None:
                smallest = num
            elif num < smallest:
                smallest = num
        except:
            print("Invalid input")
        print('maximum:', largest)
        print('Minimum:', smallest)
    

    【讨论】:

      【解决方案4】:

      我认为这会完成你的工作,

      使用简单的 if 条件

      # Defining two variables to None.
      largest = None
      smallest = None
      # starting an infinite loop
      while True:
          num = input("Enter a number: ")
      # try block to capture ValueError
          try:
              if num == "done":
                  break
      # assign the values of largest and smallest to num if its None ( on first iteration)
              if largest is None:
                  largest = int(num)
              if smallest is None:
                  smallest = int(num)
      # changing the values of it greater or smaller
              if int(num) > largest:
                  largest = int(num)
              if int(num) < smallest:
                  smallest = int(num)
      # capture the type error and ignores.
          except ValueError:
              print("ignored.")
              continue
      print("Maximum: " + str(largest))
      print("Minimum: " + str(smallest))
      

      利用列表及其方法

      # Defining an empty list.
      myList = []
      # starting an infinite loop
      while True:
          num = input("Enter a number: ")
      # try block to capture ValueError
          try:
              if num == "done":
                  break
      # append the entered number to list if valid
              myList.append(int(num))
      # catches value error and ignores it
          except ValueError:
              print("ignored.")
              continue
      # prints maximum and min
      if len(myList) > 0:
          print("Maximum: " + str(max(myList)))
          print("Minimum: " + str(min(myList)))
      else:
          print("List is empty")
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-12-29
        • 2023-01-05
        • 1970-01-01
        • 1970-01-01
        • 2012-09-16
        • 1970-01-01
        • 2022-10-14
        相关资源
        最近更新 更多