5.2编写一个程序,重复提示用户输入整数,直到用户输入“完成”为止。一旦完成'输入后,打印出最大和最小的数字。如果用户输入除有效数字以外的任何内容,请使用try / except捕获它并输出相应的消息并忽略该数字。输入问题5.1的书中的数字,然后匹配所需的输出。
这是我的代码:
largest = None
smallest = None
while True:
inp = raw_input("Enter a number: ")
if inp == "done" : break
try:
num = float(inp)
except:
print "Invalid input"
if smallest is None:
smallest = num
elif num < smallest:
smallest = num
elif num > largest:
largest = num
continue
print "Maximum is", largest
print "Minimum is", smallest
******请让我知道此代码中的逻辑错误*****
答案 0 :(得分:1)
答:你永远不会将最大分配为无。
B:如果float(inp)失败,你仍然会尝试继续。你不应该。当你可以将那些if / elif语句移动到try块中时,我建议不要这样做,因为你冒着意外捕获你不应该的东西的风险。相反,请使用try / except忽略else
块。
在同一行中,除了您想要的错误而不是所有错误之外,这是一个很好的做法。
C:没有必要继续
largest = None
smallest = None
while True:
inp = raw_input("Enter a number: ")
if inp == "done" : break
try:
num = float(inp)
except ValueError: #and not all errors!
print "Invalid input"
else:
# This block will execute if no exception is caught.
# Yes, this is valid python.
if smallest is None: #first number!
smallest = num
largest = num
elif num < smallest:
smallest = num
elif num > largest:
largest = num
print "Maximum is", largest
print "Minimum is", smallest
答案 1 :(得分:0)
编写一个程序,反复提示用户输入整数,直到用户输入“完成”。输入“完成”后,打印出最大和最小的数字。如果用户输入除有效数字以外的任何内容,请使用try / except捕获它并输出相应的消息并忽略该数字。
largest = None
smallest = None
while True:
inp = raw_input("Enter a number: ")
if inp == "done":
break
try:
num = int(inp)
if smallest is None:
smallest = num
elif num < smallest:
smallest = num
elif num > largest:
largest = num
except:
print "Invalid input"
continue
print "Maximum is", largest
print "Minimum is", smallest
如果执行后出现不匹配,则出现错误
答案 2 :(得分:0)
largest = None
smallest = None
while True:
inp = raw_input("Enter a number: ")
if inp == "done" : break
try:
num = int(inp)
except:
print "Invalid input"
continue
if smallest is None:
smallest = num
elif num < smallest:
smallest = num
if largest is None:
largest = num
elif num > largest:
largest = num
print "Maximum is", largest
print "Minimum is", smallest
答案 3 :(得分:0)
largest = None
smallest = None
while True:
num = raw_input("Enter a number:")
if num == "done": break
try:
nom = int(num)
except:
print "Invalid input"
continue
if largest is None:
largest = nom
elif nom > largest:
largest = nom
if smallest is None:
smallest = nom
elif nom < smallest:
smallest = nom
print "Maximum is", largest
print "Minimum is", smallest
答案 4 :(得分:0)
您应该在try:block中包含逻辑以逻辑运行此程序。即使你将逻辑放在catch块中,它也会运行。
在捕获之后放置逻辑(if / else)无法计算在捕获错误之前输入的数字的最高和最低数字。
正确方法
largest = None smallest = None while True: num = input("Enter a number: ") if num == 'done': break try: ival = int(num) # This block will execute if no exception is caught. # Yes, this is valid python. if smallest is None: #first number! smallest = ival largest = ival elif ival largest: largest = ival except ValueError: #and not all errors! print ('Invalid input') continue print('Maximum is', largest) print('Minimum is', smallest)
错误的方法
largest = None smallest = None while True: num = input("Enter a number: ") if num == 'done': break try: ival = int(num) except ValueError: print ('Invalid input') continue if smallest is None: smallest = ival largest = ival elif ival largest: largest = ival print('Maximum is', largest) print('Minimum is', smallest)
答案 5 :(得分:0)
代码:
largest = None
smallest = None
while True:
num = input("Enter a number: ")
if num == "done":
break
try:
n = int(num)
if smallest is None or n < smallest:
smallest = n
if largest is None or n > largest:
largest = n
except ValueError:
# num cannot be converted to an int
print ("Invalid input")
print("Maximum is", largest)
print("Minimum is", smallest)
输出:
Invalid input
Maximum is 10
Minimum is 2
答案 6 :(得分:0)
largest = 0
smallest = None
while True:
num = input("Enter a number: ")
if num == "done" :
break
try:
num1=int(num)
if(num1>largest):
largest=num1
elif smallest is None or num1<smallest:
smallest = num1
except:
print('Invalid input')
continue
print("Maximum is", largest)
print("Minimum is",smallest)
答案 7 :(得分:0)
largest = None
smallest = None
while True:
inp = raw_input("Enter a number: ")
if inp == "done" : break
try:
num = int(inp)
except ValueError: #and not all errors!
print ("Invalid input")
else:
# This block will execute if no exception is caught.
# Yes, this is valid python.
if smallest is None: #first number!
smallest = num
largest = num
elif num < smallest:
smallest = num
elif num > largest:
largest = num
print ("Maximum is", largest)
print ("Minimum is", smallest)
答案 8 :(得分:0)
#by Aless
largest = None
smallest = None
while True:
num = input("Enter a number: ")
if num == "done" : break
try:
intNum = int(num)
except ValueError:
#print('Error: Invalid input', num)
print('Invalid input')
continue
else:
if (largest < intNum): largest = intNum
if (smallest > intNum) or (smallest is None): smallest = intNum
print("Maximum", largest)
print("Minimum", smallest)
答案 9 :(得分:0)
largest = 0
smallest = None
while True:
num = input("Enter a number: ")
if num == "done" :
break
try:
num1=int(num)
if(num1>largest):
largest=num1
elif((smallest is None) or(num1<smallest)):
smallest=num1
except ValueError:
print("Invalid input")
continue
print("Maximum is", largest)
print("Minimum is",smallest)
答案 10 :(得分:0)
largest = None
smallest = None
numbers = []
while True:
num = input("Enter a number: ")
if num == "done":
break
numbers.append(num)
for value in numbers:
try:
value = int(value)
if largest is None:
largest = value
elif value > largest:
largest = value
except:
continue
for value in numbers:
try:
value = int(value)
if smallest is None:
smallest = value
elif value < smallest:
smallest = value
except:
print ("Invalid input")
continue `
print("Maximum is", largest)
print("Minimum is", smallest)
答案 11 :(得分:0)
largest = None
smallest = None
while True:
inp = input("Enter a number: ")
if inp == "done" : break
try:
num = float(inp)
except ValueError:
print ("Invalid input")
else:
if smallest is None:
smallest = num
largest = num
elif num < smallest:
smallest = num
elif num > largest:
largest = num
print ("Maximum is", int(largest))
print ("Minimum is", int(smallest))
答案 12 :(得分:0)
5.2编写一个程序,反复提示用户输入整数,直到用户输入“ done”为止。输入“完成”后,打印出最大和最小的数字。如果用户输入的数字不是有效数字,请使用try / except进行捕获,然后输入适当的消息并忽略该数字。输入7、2,bob,10和4,然后匹配下面的输出。
largest = None
smallest = None
while True:
num = input("Enter a number: ")
if num == "done" :
break
try:
a = int(num)
except:
print("Invalid input")
continue
if a > largest:
largest = a
if smallest is None:
smallest = a
if a < smallest:
smallest = a
print("Maximum is", largest)
print("Minimum is", smallest)
输入
7
2
bob
10
4
done
输出
Invalid input
Maximum is 10
Minimum is 2
答案 13 :(得分:0)
#试试这个代码。它的工作原理请看截图使用 7,4,bob, 10,4 和最后一个“done”。
largest = None
smallest = None
while True:
try:
num = raw_input("Enter a number: ")
if num == "done":
break
if largest is None:
largest = int(num)
if int(num) > largest:
largest = int(num)
if smallest is None:
smallest = int(num)
if int(num) < smallest:
smallest = int(num)
except:
print ("Invalid input")
print ("Maximum is", largest)
print ("Minimum is", smallest)
答案 14 :(得分:-1)
尝试此代码....
largest = None
smallest = None
while True:
num = input("Enter a number: ")
if num == "done" :
break
try:
inp=float(num)
except:
print("Invalid input")
continue
for value in [7,2,10,4]:
if largest is None:
largest = value
elif value>largest:
largest=value
print("Maximum is", largest)
for value in [7,2,10,4]:
if smallest is None:
smallest = value
elif value < smallest:
smallest=value
print("Minimum is", smallest)