2016-08-20 5 views
-4

私は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に申し訳ありませんが、私の母国語ではありません。

+0

エラーが指している行を見てください。それは間違って見える? – Blender

+0

2番目のコンストラクタの直後を指します。def __str __(self)はフォーマットで終わります。 –

+0

カッコを数えます。 – chepner

答えて

1

最後のprintコールにはかっこがありません。

0

最後の行の最後に括弧を閉じないと、印刷方法の1つの開口部がありますが、最後は閉じないことになります。

関連する問題