【问题标题】:Assignment to a list function not working分配给列表功能不起作用
【发布时间】: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”对象不可迭代。为什么会这样?

标签: python list average


【解决方案1】:

我想分享一个更简洁的代码。

mylist = []
while len(mylist) < 3:
    try:
        mylist.append(int(input("Enter a number:")))
    except ValueError:
        print ("Please enter an integer") 

mylist.remove(min(mylist))
print (sum(mylist)/2.)

按预期工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-21
    • 2013-01-30
    • 2014-03-05
    • 2014-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-16
    相关资源
    最近更新 更多