我无法获得元组的最小值或最大值

时间:2018-12-15 19:13:26

标签: python

total_price = []

for i in range (5):
try:
     price = list (input ("Enter the price of the sweet: "))
except ValueError:
    print("Enter an integer")
total_price.append(price)
print (total_price)

print ("The most expensive sweet is " + str (max(total_price)))
print ("The least expensive sweet is" + str (min(total_price)))

这就是它的输出

Enter the price of the sweet: 10
Enter the price of the sweet: 20
Enter the price of the sweet: 30
Enter the price of the sweet: 40
Enter the price of the sweet: 50
[['1', '0'], ['2', '0'], ['3', '0'], ['4', '0'], ['5', '0']]
The most expensive sweet is ['5', '0']
The least expensive sweet is['1', '0']
>>> 

我已经设法到达那个阶段,但是由于某种原因,我仍然遇到问题,因为它正在分离数组中的值。

4 个答案:

答案 0 :(得分:0)

Python告诉您问题所在,total_price不可迭代,因为它是一个int,就像问max(7)是什么。您可能想要做一些事情,例如将所有5个输入存储在某个数组中,然后在该数组上调用sum,max,min。

示例-

A = [1, 2, 3, 4, 5]
print(max(A)) # 5
print(min(A)) # 1
print(sum(A)) # 15

答案 1 :(得分:0)

您正在使用max函数,该函数期望一个可迭代的或两个以上的参数来选择较高的值,如其定义所示:

  

返回可迭代的最大项或两个或多个参数中的最大项”,

但是您要传递一个整数

答案 2 :(得分:0)

如果将价格存储在可迭代的列表中,则可以找到最昂贵的糖果的价格。如:

prices = []
for i in range(5):
   try:
      sweet_price = int(input("Enter price: "))
   except ValueError:
      print("ErrorMessage")
   prices.append(sweet_price)

highest_price = max(prices)

请参见https://docs.python.org/3/library/functions.html#max

  

要查找元组中的最大值(如标题所示),请尝试max(list(prices))

答案 3 :(得分:0)

# omitted part
try:
    price = list(input("Enter the price of the sweet: "))
except ValueError:
    print("Enter an integer")

在这里您将str应用于list来进行更改。例如,

read_value = '1234'
list(read_value)
Out:
['1', '2', '3', '4']  # type: list of str

要解决此问题,请使用int

# omitted part
try:
    price = int(input("Enter the price of the sweet: "))
except ValueError:
    print("Enter an integer")

对于单个输入,

read_value = '1234'
int(read_value)
Out:
1234  # type: int