Python - Why Python: Similar but Different - set, remove method
Head First Python: A Learner’s Guide to the Fundamentals of Python Programming, A Brain-Friendly Guide、 Paul Barry(著)、 O’Reilly Mediaの Chapter 1.(Why Python?: Similar but Different)、SHARPEN YOUR PENCIL(98/682)の解答を求めてみる。
Jupyter(コード、入出力結果)
Cards.ipynb
def draw():
card = random.choice(list(deck))
deck.remove(card)
return card
for _ in range(55):
print(draw())
(9, 'of', 'Diamonds')
(5, 'of', 'Hearts')
('Ace', 'of', 'Hearts')
('King', 'of', 'Spades')
(3, 'of', 'Spades')
(8, 'of', 'Spades')
(4, 'of', 'Diamonds')
(7, 'of', 'Spades')
('King', 'of', 'Hearts')
(10, 'of', 'Hearts')
(4, 'of', 'Hearts')
(4, 'of', 'Spades')
(7, 'of', 'Clubs')
('Jack', 'of', 'Hearts')
(6, 'of', 'Diamonds')
(5, 'of', 'Clubs')
(9, 'of', 'Hearts')
('Jack', 'of', 'Diamonds')
('Queen', 'of', 'Spades')
(8, 'of', 'Diamonds')
('Jack', 'of', 'Spades')
(9, 'of', 'Spades')
(2, 'of', 'Diamonds')
(8, 'of', 'Hearts')
(2, 'of', 'Spades')
(3, 'of', 'Hearts')
(4, 'of', 'Clubs')
('King', 'of', 'Clubs')
(8, 'of', 'Clubs')
(10, 'of', 'Diamonds')
(10, 'of', 'Spades')
(7, 'of', 'Diamonds')
(5, 'of', 'Diamonds')
(3, 'of', 'Diamonds')
(5, 'of', 'Spades')
('Queen', 'of', 'Diamonds')
('Queen', 'of', 'Clubs')
(2, 'of', 'Clubs')
(6, 'of', 'Clubs')
(7, 'of', 'Hearts')
(10, 'of', 'Clubs')
(9, 'of', 'Clubs')
('Queen', 'of', 'Hearts')
(3, 'of', 'Clubs')
('King', 'of', 'Diamonds')
('Ace', 'of', 'Diamonds')
('Ace', 'of', 'Clubs')
(6, 'of', 'Spades')
('Ace', 'of', 'Spades')
(6, 'of', 'Hearts')
(2, 'of', 'Hearts')
('Jack', 'of', 'Clubs')
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
Cell In[3], line 2
1 for _ in range(55):
----> 2 print(draw())
Cell In[2], line 2, in draw()
1 def draw():
----> 2 card = random.choice(list(deck))
3 deck.remove(card)
4 return card
File /opt/local/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/random.py:351, in Random.choice(self, seq)
348 # As an accommodation for NumPy, we don't use "if not seq"
349 # because bool(numpy.array()) raises a ValueError.
350 if not len(seq):
--> 351 raise IndexError('Cannot choose from an empty sequence')
352 return seq[self._randbelow(len(seq))]
IndexError: Cannot choose from an empty sequence