【问题标题】:Intro to Python HW assignmentPython 硬件分配简介
【发布时间】:2017-07-25 02:28:04
【问题描述】:

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

largest = None
smallest = None
while True:
    num = input("Enter a number: ")
    if num == "done" : 
        break
    try:
        num = int(num)
    except: 
        print('Invalid input')
        continue


   if smallest is None or num < smallest :
       smallest = num
   elif largest is None or num > largest :
       largest = num

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

所以在输入 7、2、bob、10 和 4,然后输入 done 后,代码不会像我在最后两行中编码的那样打印出最大和最小数字。我的错在哪里?

谢谢

【问题讨论】:

  • 您是否尝试过使用调试器逐行执行代码?
  • 你不能在你的条件下使用elif,因为如果你先输入最大的数字,那么这将不起作用。除此之外工作正常,您在输入'done' 后看到了什么? (注意:我假设 if 条件的缩进中的单个空格差异只是一个剪切和粘贴错误 - 否则你会得到一个 IndentationError
  • 我不知道为什么你的投票率如此之低,但你可以做两件小事来改善你的问题:将标题更改为“查找最大和最小输入数字”之类的内容,因为那是更具描述性(因此人们不会认为您试图让他们做作业),并在示例输入中包含您的代码给出的实际输出。
  • num = int(num) 如果输入是浮点数(例如 7.2),则不会产生错误
  • @user55449 我是stackoverflow的新手,所以感谢您的建议,以后会记住的。

标签: python


【解决方案1】:

您可以将数字附加到列表中,并使用内置方法为您执行此操作,min()max()。例如:

my_list = []

while True:
    num = input("Enter a number: ")
    if num == "done" : 
        break
    try:
        num = int(num)
        my_list.append(num)
    except: 
        print('Invalid input')
        continue

largest = max(my_list)
smallest = min(my_list)

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

【讨论】:

  • 虽然这是一个正确的解决方案。我认为在学习编程的这个阶段,我不认为 OP 老师的目标是使用两个变量来保持 max min 而不是 List
【解决方案2】:

在最大整数是第一个输入的情况下不起作用。您可以尝试将最大和最小变量初始化为第一个输入来解决它。

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

    except: 
        print('Invalid input')
        continue

    if largest is None:
       largest,smallest = num,num
    elif num < smallest :
       smallest = num
    elif num > largest :
       largest = num

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

【讨论】:

    猜你喜欢
    • 2010-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-12
    • 2017-02-21
    • 2014-03-18
    • 1970-01-01
    相关资源
    最近更新 更多