【发布时间】:2021-08-03 10:00:39
【问题描述】:
我想从我的列表中返回一个由字符串类型字符组成的数组,目前我的程序只是将每次迭代直接打印到 shell 这是我当前的输出:
deck = Deck()
print(deck)
2 S,
3 S,
4 S,
5 S,
6 S,
7 S,
8 S,
9 S,
T S,
J S,
Q S,
K S,
A S,
2 C,
3 C,
4 C,
5 C,
6 C,
7 C,
8 C,
9 C,
T C,
J C,
Q C,
K C,
A C,
2 D,
3 D,
4 D,
5 D,
6 D,
7 D,
8 D,
9 D,
T D,
J D,
Q D,
K D,
A D,
2 H,
3 H,
4 H,
5 H,
6 H,
7 H,
8 H,
9 H,
T H,
J H,
Q H,
K H,
A H
**我需要的输出是:**
2 C, 3 C, 4 C, 5 C, 6 C,
7 C, 8 C, 9 C, T C, J C,
Q C, K C, A C, 2 D, 3 D,
4 D, 5 D, 6 D, 7 D, 8 D,
9 D, T D, J D, Q D, K D,
A D, 2 H, 3 H, 4 H, 5 H,
6 H, 7 H, 8 H, 9 H, T H,
J H, Q H, K H, A H, 2 S,
3 S, 4 S, 5 S, 6 S, 7 S,
8 S, 9 S, T S, J S, Q S,
K S, A S
我尝试实现 for 循环和计数器但没有成功...这是我的代码:
import random
class Card:
def __init__(self, rank, suit): # initialize number variables here
self._rank = rank
self._suit = suit
def __str__(self): #overload this to get a readable string representation of our card object
return str(self._rank) + ' ' + str(self._suit)
def __eq__(self, other):
if self._rank == other._rank:
return True
def __ne__(self, other):
if self._rank != other._rank:
return True
class Deck:
def __init__(self):
# create a list of card objects only need to pass in self
#intialize a string or list of suits
#intialize a string or list of ranks
# building the list of cards
self._deck = []
self._dealt = []
suits = ['S', 'C', 'D', 'H']
ranks = ['2', '3' , '4', '5', '6', '7' , '8', '9','T', 'J' , 'Q', 'K', 'A']
for suit in suits:
for rank in ranks:
self._deck.append(Card(rank,suit))
def __str__(self):
return ', \n'.join(str(i) for i in self._deck)
感谢您的任何帮助,我们将不胜感激。
【问题讨论】:
-
期望输出遵循什么模式?
-
5 个卡片对象,然后换行
标签: python arrays string list class