0

私は、次のことを行うループまたはリスト内包表記を作成しようとしています:

次に"Please give me the number of bread sold at ", self.bakeryname[k], ":" 、指定されたベーカリーで販売されている休憩の数をユーザーに表示し、それをリストに保存します

"Please give me the number of [breadtype] sold at:"
"The hungry baron": [here you enter a number]
"The flying bulgarian": [here you enter another number]

最初のプロンプト値から始まり、最後の -||- で終わる整数のリストに格納されます。

パン屋の数は潜在的に無限で、パンは 3 種類しかありません。

私はこの機能である穴に自分自身を掘り下げました:

def soldbread(self):
    amount = ((len(self.bakeryname))*3)
    k = 0
    j = 0
    h = 0
    i = 0
    while j < (len(self.breadtype)):
            print("Please give me the number of",self.breadtype[k], "sold at:")
            while i < amount:
                self.breadsold.append(i)
                self.breadsold[i] = int(input(self.bakeryname[h]))
                j += 1
                h += 1
                i += 1
                if k == 3:
                    break
                else:
                    while j >= len(self.bakeryname):
                        k += 1
                        print("Please give me the number of",self.breadtype[k], "soldat:")
                        j = 0
                        h = 0

この関数は 15 番目の種類のパン (self.bakeryname には現時点で 5 つのベーカリーがあるため、少なくともその数は正確です) に移動し、「IndexError: リスト インデックスが範囲外です」というメッセージが表示されます。私はたくさんの「if」と「breaks」を試しましたが、うまくいきません。

コード内の名前などは私の母国語から翻訳されているため、最終的なタイプミスはコードに含まれない可能性があります。

4

2 に答える 2

0
bakeries = ['a','b','c']
breadtypes = ['flat','rye','white']

results = []
for i in bakeries:
   print('How many of each type of bread for {0}:'.format(i))
   number_of_types = []
   for bread in breadtypes:
       number_of_types.append(input('{0}:'.format(bread)))
   results.append(number_of_types)

for k,v in enumerate(bakeries):
   print('Here are the different types of breads for {0}'.format(v))
   print(''.join('{0}:{1}'.format(a,b) for a,b in zip(breadtypes, results[k])))
于 2013-08-07T22:10:16.193 に答える