Pythonのnoobのに失敗した...私のPythonのリスト内包が原因バージョン3.2.3を使用して、構文エラー
class Card:
def __init__(self, suitID, rank):
self.suits = ("Spades", "Hearts", "Diamonds","Clubs")
self.rank = rank
self.suit = self.suits[suitID]
def __str__(self):
return (str("%s of %s" % (self.rank, self.suit)))
class Deck:
def __init__(self):
self.cards = [Card(i//13, i%13) for i in range(52)]
上記は私が設定のものを持っているかで、私には罰金です。
def __str__(self):
print (self.cards [i for i in range (52) ])
return("")
出力:
File "cardgame.py", line 21
print (self.cards[i for i in range(52)])
^
SyntaxError: invalid syntax
混乱は、以下の(これが唯一のテストのためにあるよう
リターン( "")文を無視してください)
ケース1であります
なぜエラーですか?私はそれを使用したかのLCのだと思った...
ケース2:
def __str__(self):
print (myCards for myCards in self.cards)
return ("")
出力:再び
<generator object <genexpr> at 0x2256fa0>
、それが何を意味し、そしてなぜそれはデータを出力しないのですか?
ケース3:
def __str__(self):
for myCard in self.cards:
print (myCard)
return ("")
出力:
0 of Spades
1 of Spades
2 of Spades
3 of Spades
4 of Spades
...
..
.
は、今これは私が欲しいものを正確に出力し、それは私にこれまで以上に混乱します。私は3つのケースすべてが同等であり、明らかにそうではないという印象を受けました。違いは何ですか?
ありがとうございます。
は私のようなアドレスの膨大なリストを提供します:<。__メイン__ 0x1d0c310のカードオブジェクト> [を、<__メイン__カードオブジェクト0x1d0c350で。>、<__メイン__カードオブジェクト0x1d0c390で。>、<0x1d0c3d0で__メイン__カードオブジェクト。 >、<__ main __。Car .............. – DDauS
質問ごとに1つ質問してください。 – TigerhawkT3