2017-11-30 2 views
-1

"5つの項目とその価格を入力するようにプログラムを作成すると、プログラムは最高値から最低値の入力をソートし、項目と価格を示すソートされたデータを出力します。並べ替えを含むPythonのショッピングリスト

:ここ

は、私は、ユーザーが単に価格を入力した場合、私は大丈夫だろう、この後に何をすべきか見当がつかない、これまで持っていますが、アイテム名も出力することがあるものです
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に新しいので、任意のヘルプは本当にいただければ幸いです!

+1

py3では 'input()'を使い、py2では 'raw_input()'を使用します。文字列に入力がない 'int()'も明らかに失敗します。これを 'for i in range(5)'ループに入れると、いくつかのコードを保存し、これらの間違いを避けるのに役立ちます! –

+0

これらの番号付き変数をすべて削除します。ループを使用して、データをタプルのリストに直接保存する必要があります。 –

+0

繰り返しコピーし貼り付けてコードを書くのは良い計画ではありません(https://en.wikipedia.org/wiki/Don%27t_repeat_yourself)。コードのエラーが起こりやすく、長時間の読み込みが難しくなり、読みにくくなります。アイテム名を取得するためのプロンプトが表示されていないことに注意してください。それらはすべて 'raw_input( 'Enter First Item')'です。そして 'item1price = int(" First Item Price: ")を入力すると、ValueErrorが発生します。 –

答えて

0

あなたの商品や価格に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]) 
+0

そしてデータのソートはどこですか? – Matthias

+0

並べ替えの部分を忘れて、それを指摘してくれてありがとう。 – Gio

関連する問題