Python中带排序的购物清单

Python中带排序的购物清单,python,sorting,input,output,price,Python,Sorting,Input,Output,Price,“编写一个程序,提示用户输入5种商品及其价格。然后,该程序应将输入的商品从最高价格排序到最低价格,并输出显示商品及其价格的排序数据。” 到目前为止,我还不知道接下来该怎么做,如果用户只需输入价格,我就可以了,但商品名称也必须输出: print("Welcome To Shopping List!") item1 = raw_input('Enter First Item') item1price = int("Enter First Item Price: ") item2 = raw_i

“编写一个程序,提示用户输入5种商品及其价格。然后,该程序应将输入的商品从最高价格排序到最低价格,并输出显示商品及其价格的排序数据。”

到目前为止,我还不知道接下来该怎么做,如果用户只需输入价格,我就可以了,但商品名称也必须输出:

print("Welcome To Shopping List!")

item1 = raw_input('Enter First Item')
item1price = int("Enter First Item Price:  ")

item2 = raw_input(input('Enter First Item'))
item2price = int(input("Enter Second Item Price:  "))

item3 = raw_input('Enter First Item')
item3price = int(input("Enter Third Item Price:  "))

item4 = raw_input('Enter First Item')
item4price = int(input("Enter Fourth Item Price:  "))

item5 = raw_input('Enter First Item')
item5price = int(input("Enter Fifth Item Price:  "))


data = [(item1, item1price), (item2, item2price), (item3, item3price),         (item4, item4price)]
data = [int(x) for x in data]
data.sort()
输出需要如下所示,按从最高到最低的价格排序:

Coffee 4.99  
Kitchen 
Towel 1.75  
Butter 1.70  
Milk 0.45 

我是python新手,因此非常感谢您的帮助

不要为你的商品和价格设置10个或更多的变量,而是询问用户他/她想要多少。使用该数字循环并将输入存储在元组中,然后附加到列表中。再次使用
'for'
循环显示数据

#!/usr/bin/env python3.6

# Write a program to prompt the user to enter a number of  items and their prices.
# The program should then sort the input from highest to lowest price and
# output the sorted data showing the item and the price.

print("Welcome To Shopping List!")
numItems = input("How many items do you want? ")
myTup = ()
myList = []

for x in range(int(numItems)):
    itemName = input("Enter item name: ")
    itemPrice = input("Enter item price: ")
    myTup = (itemPrice, itemName)
    myList.append(myTup)

myList.sort()

for x in range(len(myList)): print(myList[x][1] + " = " + myList[x][0])

在py3中使用
input()
,在py2中使用
raw\u input()
,不要混用
int()
在字符串上没有输入显然也是失败的。如果您将其放入范围(5)中的i的
循环中,您将保存一些代码并帮助避免这些错误!去掉所有那些编号的变量。您应该使用循环,并将数据直接保存到元组列表中。通过重复复制和粘贴来编写代码。它使代码更容易出错,冗长,更难阅读。请注意,您将获取项目名称的提示搞乱了:它们都说
raw\u input('Enter First item')
。和
item1price=int(“输入第一项价格:”)
将引发ValueError。如果您对元组中的值进行重新排序(价格优先),您可以按降序对包含元组的列表进行排序,一切正常。顺便说一句,如果将价格转换为整数,则不会得到类似
4.99
的值。数据的排序在哪里?