2016-08-27 4 views
1

私はプログラミング/コーディングでいくつかの大きな改善が必要で、すでにこのコンピューター言語分野の1ヶ月です。コードが機能しないのはなぜですか? (初心者のプログラマー、Pythonの第1言語)

今、私は3つの関数(ランチ、朝食、夕食)でクラスを作成しようとしていますが、ランチに関数 'lunch'を呼び出して 'Strawberry'を追加したいとしましょう。これまでのリスト数に入力された食品の量についてはリスト数(list_count)に1を加え、「strawberry」を辞書に追加することになっています。

それでは、私がやろうとしていることは、私は空白の辞書リスト(lunch_list)を作成し、食料品(lunch_count)のカウント開始を作成している

だから私は食糧クラスで昼食を呼び出す場合、私はよこのような結果をしよう:

list_count: 1 
lunch_name: Strawberry 
lunch_list = {1:'Strawberry'} 

私はこのスクリプトを記述する準備ができていたが、これを書いた後、私は自分自身に多くの混乱しました。私は失われたと感じます。これは私のために恥ずかしいことになるだろうが、ここに私のコードです:

class Food(): 

    lunch_count = 0 
    lunch_list = {} 

    def __init__(self, food_name): 
     self.food_name = food_name 

    def lunch(self, lunch_count): 
     lunch_count += 1 
     lunch_list[lunch_count] = self.food_name 
     return lunch_list 




strawberry = Food('Strawberry') 

print strawberry.lunch('Strawberry') 
+0

'global'はクラス内で' self'に等しくなります。 'docstring'なしでクラスを書くことはしないでください。 – dsgdfg

答えて

0

あなたの「ストロベリー」パラメータは、お弁当機能でlunch_countパラメータと一致するようにそれはいないようです。ランチ方法では、ランチを呼び出すたびに、それをパラメータとして追加するのではなく、ランチメソッドを1つずつ増やすことができます。

Pythonを初めてお使いの方は、Learn Python the Hard Wayをお勧めします。

class Food(): 
    lunch_count = 0 
    lunch_list = {} 

    def __init__(self, food_name): 
     self.food_name = food_name 

    def lunch(self): 
     Food.lunch_count += 1 
     Food.lunch_list[Food.lunch_count] = self.food_name 
     return Food.lunch_list 

strawberry = Food('Strawberry') 

print strawberry.lunch() 
0
class Food(): 

    lunch_count = 0 
    lunch_list = {} 

    def __init__(self, food_name): 
     self.lc = None 
     self.food_name = food_name 

    def lunch(self): 
     Food.lunch_count += 1 
     self.lc = Food.lunch_count 
     Food.lunch_list[Food.lunch_count] = self.food_name 
     return Food.lunch_list 




strawberry = Food('Strawberry') 

result = strawberry.lunch() 
print strawberry.lc 
print strawberry.food_name 
print result 
+0

@Rawingは魅力的です。あなたは幸せです:) –

0

読み、理解しやすいです。関数内

lunch_count=0 
lunch_item="" 
lunch_menu={} 
while lunch_item != "quit": 
    lunch_item=input("Enter Item: ") 
    menu_item=str(lunch_item) 
    lunch_count+=1 
    lunch_menu.update({lunch_count:menu_item}) 
    print(lunch_menu) 
else: 
    print("exiting") 

ラップは、この、それはあなたが私の答えのような場合は緑をクリックしてくださいPythonの3.5.2

を使用してアイテムを追加し、カウントが新たに入力された文字列

と一緒に更新されます矢印。おかげさまで

関連する問題