2016-09-11 6 views
0

私は6つの項目とそれぞれの長さ、幅とコストの値の情報を格納し、ユーザーの入力に基づいていくつかの値を解決する必要があります。Pythonでリストまたは配列を使用しますか?

jcusickの助けを借りて、以下のコードを追加しました。

コメント(#)に記載されている項目のヘルプが必要です。

完全なコードを書く必要はありません。正しい方向を指すのが完璧です。

これまでのところ、私が持っている:

cost = {} 
cost['Themon'] = 450 
cost['Larrec'] = 700 
cost['Medrec'] = 500 
cost['Parallel'] = 825 
cost['Suncatch'] = 400 
cost['Chantran'] = 975 

length = {} 
length['Themon'] = 3.2 
length['Larrec'] = 3.4 
length['Medrec'] = 2.1 
length['Parallel'] = 5 
length['Suncatch'] = 3 
length['Chantran'] = 9 

width = {} 
width['Themon'] = 2.3 
width['Larrec'] = 3 
width['Medrec'] = 2 
width['Parallel'] = 4 
width['Suncatch'] = 3 
width['Chantran'] = 6 

area = {} 
area['Themon'] = 1 # how do i calculate the area (l*w) by referencing the lenght and width dictionary 
area['Larrec'] = 1 
area['Medrec'] = 1 
area['Parallel'] = 1 
area['Suncatch'] = 1 
area['Chantran'] = 1 

#menu 
ans=True 
while ans: 
    print(""" 
    Enter 1. to find cheapest garden deck 
    Enter 2. to display the names of garden decks over a certain lenght 
    Enter 3. to display the number of garden decks that are available over a certain area 
    Enter 4. to quit 
    """) 
    ans=input("What option would you like? ") 
    if ans=="1": 
     print (min(cost, key=cost.get)) 
    elif ans=="2": 
     input_length = input("\n Please enter minimum deck length between 2 and 15 metres") 
     print # i need to display names of the decks greater than the user input length 
    elif ans=="3": 
     input_area = input("\n Please enter deck area in metres squared between 4 and 80") 
     print # i need to display the number of garden decks that are greater that the user input area 
    elif ans=="4": 
     print("\n Thank you for using Penny's Decking") 
    else: 
     print("\n Not a valid choice") 
+1

* *「私は私が間違ってデータを保存していると思う」 - 何があなたが思いますそれ?なぜあなたは配列がもっと良いと思いますか? [ask]を見てください。 – jonrsharpe

+0

Re:インデント - 私はそれを正しくインデントしていますが、ここに貼り付けるのが難しかったです。 – user6820046

+0

@ user6820032エディタにコードを貼り付け、コードブロック全体を選択し、 '{}'ボタンを押すと、一般的なヘルプ編集がエディタの '?'ボタンをクリックします。 –

答えて

1

私はあなたが(長さ、幅、コスト)に興味があるの各変数についてdictionaryを作成することを検討することがあります。私はあなたがパンダに見て、彼らはあなたがやっていることのために完全であるとして、より具体的にデータフレームを使用して、これを実装することをお勧め

cost = {} 
cost['Themon'] = 450 
cost['Larrec'] = 700 
... 
print (min(cost, key=cost.get)) 
# 'Themon' 
+0

私のメモには、デッキの情報がリアルまたはストリングとして格納されていますか?私はそれを行うことができますか、またはあなたが示唆したように私は辞書を使うべきですか? – user6820046

+0

データ_タイプ_をデータ_構造_と混同しているようです。辞書は、あなたの情報を格納する構造体です。その情報をどのように入力するかはあなた次第です。私の例では、使用される構造体は 'dictionary'であり、キーは' string'型であり、値は 'int'型です。 – jcusick

+0

コードを修正しましたが、構文エラーが発生しました。私は新しい未亡人に次のように入力しました。 - コスト= {} コスト['Themon'] = 450 コスト['Larrec'] = (キー= cost.get、コスト)700 コスト[ 'のMedRec'] = 500 コスト[ 'パラレル'] = 825 コスト[ 'Suncatch'] = 400 コスト[ 'Chantran'] = 975 プリント分 – user6820046

0

:次に、あなたはいつもどのようなユーザーの回答に応じて特定の辞書を照会することができます。他の人が言ったように。インデントが正しくフォーマットされていることを確認してください。あなたがやっていることに完璧なDataFramesを使いたくないなら、値の辞書を作成して参照することをお勧めします。

1

パンダは、このような小さなコードでは過度のものかもしれないと思います。あなたの特定の例では、配列はより速い記憶方法になります。しかし、私はこれまで、この特定の規模を処理するためのリストはおそらくもっと無計画な方法だと言っています。あなたのパフォーマンスはここではあまり重大な影響を受けませんし、配列を使用するのではなく、少しだけ読みやすくなっています。

はさらに読書のために、時にはnamedtupleは、より大規模なあなたはキープした例、およびアクセス、レコードのに役立つことができます:

関連する問題