私はPythonプログラミングと呼ばれる本を使用しています:コンピュータプログラミングを紹介し、第10章のプログラミング演習に固執しています。ユーザーがカードの価値とそのスーツを挿入した後にトランプを表示するプログラムを求めます。また、私は3つの方法に加えて2つのコンストラクタを使用する必要があり、ここではそれらは:解析中に予期しないEOFエラーが表示されますか?
__init__(self, rank, suit):
getRank(self)
getSuit(self)
BJValue(self)
__str__(self)
しかし、私はエラーが表示され、それを実行するように.....ここに は私の仕事です:
from random import randrange
class Card:
def __init__(self, rank, suit):# This constructor creates the corresponding card according to their ranks:
self.rank = rank # "d"=diamonts, "c"=clubs, "h"=hearts, or
"s"=spades
self.suit = suit
def getRank(self):# Returns the rank of the card.
ranks = [None, "Ace", "2", "3",
"4", "5", "6", "7", "8",
"9", "King", "Queen", "Jack"]
self.rank = ranks[self.rank]
return self.rank
def getSuit(self):# Returns the suit of the card.
suits = ["diamons", "heart", "club", "spades"]
# TRY TO MAKE THIS PIECE OF CODE MORE ABSTRACT!!!!
if self.suit[0] == "d":
self.suit = suits[0]
elif self.suit[0] == "h":
self.suit = suits[1]
elif self.suit[0] == "c":
self.suit = suits[2]
elif self.suit[0] == "s":
self.suit = suits[3]
return self.suit# A suit in Blackjack means the symbol of the card.
def BJValue(self):# Returns the Blackjack value of a card.
# For example Aces count as 1 and face cards count as 10.
while 0 < self.rank <= 10:
if self.rank == "Ace":
self.rank = 1
self.bjvalue = self.rank
elif self.rank[0] == "King" or self.rank[0] == "Queen" or self.rank[0] == "Jack":
self.rank = 10
self.bjvalue = self.rank
else:
self.bjvalue = self.rank
return self.bjvalue
def __str__(self):# Returns a string that names the card. For example "Ace of Spade".
print("{0} of {1}".format(self.rank, self.suit)
私はEnglisに申し訳ありませんが、私の母国語ではありません。
エラーが指している行を見てください。それは間違って見える? – Blender
2番目のコンストラクタの直後を指します。def __str __(self)はフォーマットで終わります。 –
カッコを数えます。 – chepner