【发布时间】:2019-01-04 21:39:55
【问题描述】:
我正在尝试解决一个简单的问题。输入三个数字并找出最大的两个数字的平均值。
while True:
try:
n1 = int(input("Enter n1: "))
n2 = int(input("Enter n2: "))
n3 = int(input("Enter n3: "))
except ValueError:
print ("Enter an integer: ")
continue
else:
break
mylist = [n1,n2,n3]
mylist.remove(min(mylist))
print (float(sum(mylist))/2)
为什么这不起作用。如果我删除分配 n_avg 并保留最后两行代码,如下所示,它可以工作。谁能解释一下原因?
mylist.remove(min(mylist))
print (float(sum(mylist))/2)
【问题讨论】:
-
您的意思是
mylist = [n1,n2,n3]行吗?您正在创建列表和删除方法,min 方法和 sum 方法是列表支持的方法。 -
“不工作”不是问题规范。此外,
n_avg不会出现在您的代码中。我不清楚这个问题。该代码对我来说很好。 -
我看不出代码有任何问题。什么不起作用?
-
抱歉给大家带来了困惑。我正在尝试将代码编写为 n_avg = mylist.remove(min(mylist)),然后打印 n_avg 的平均值。如果我在 mylist 上分配操作,代码会弹出错误:“NoneType”对象不可迭代。为什么会这样?