我编写了下面的代码,用于获取最大值和最小值作为我的MOOC分配的一部分.该程序不断地从用户接收输入,直到用户键入"完成".
输入'done'后,程序会给出最大值和最小值的结果.问题是最大值的结果总是正确的,但最小值的结果总是"无".
largest = None
smallest = None
while ( True ) :
inp = raw_input('Enter a number: ')
if inp == 'done' :
break
try:
inp = float(inp)
except:
print 'Invalid input'
continue
if inp is None or inp > largest:
largest = inp
if inp is None or inp < smallest:
smallest = inp
print largest, smallest
Run Code Online (Sandbox Code Playgroud)
您发布的代码对于最大和最小都没有给出。try catch 之后有一个 continue 语句,所以显然它只是继续接受输入并且永远不会终止。continue 将告诉循环跳到下一次迭代。所以继续必须出现在 except 块中(这可能是一个缩进错误)。其次,您将输入与 None 进行比较。我猜这是你 if 条件中的一个拼写错误(应该是“如果最大的是无”而不是“如果 inp 是无”)
修改后的代码:(检查最后2个if条件):
largest = None
smallest = None
while ( True ) :
inp = raw_input('Enter a number: ')
if inp == 'done' :
break
try:
inp = float(inp)
except:
print 'Invalid input'
continue
if largest is None or inp > largest:
largest = inp
if smallest is None or inp < smallest:
smallest = inp
print largest, smallest
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1884 次 |
| 最近记录: |