「独学プログラマー」P.255に載っているコードです
キューを使って、映画のチケットを買う待ち行列を表現しています。
python
1import time 2import random 3 4class Queue: 5 def __init__(self): 6 self.items = [] 7 8 def is_empty(self): 9 return self.items ==[] 10 11 def enqueue(self, item): 12 self.items.insert(0, item) 13 14 def dequeue(self): 15 return self.items.pop() 16 17 def size(self): 18 return len(self.items) 19 20def simulate_line(till_show, max_time): 21 pq = Queue() 22 tix_sold = [] 23 24 for i in range(100): 25 pq.enqueue("person" + str(i)) 26 27 t_end = time.time() + till_show 28 now =time.time() 29 while now > t_end and not pq.is_empty(): 30 now = time.time() 31 r = random.randint(0, max_time) 32 time.sleep(r) 33 person = pq.dequeue() 34 print(person) 35 tix_sold.append(person) 36 return tix_sold 37 38sold = simulate_line(5, 1) 39print(sold)
これを実行してみたのですが、得られた結果が以下のように空になってしまいます。
[]
本を見ると、
person0
・・・
["person0", "person1", "person2"]
以上のように、シュミレーションされた結果が返ってくるとはずなのですが、
一体どうしてなのでしょうか?
よろしくお願いします。
(ちなみに、引数を変えてみても結果は同じでした。)
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。