「絶対初心者のための Python プログラミング (第 3 版) 」という本を読んでいます。私はカスタム モジュールを紹介する章にいますが、これは本書のコーディングの誤りである可能性があると思います。5、6 回チェックして正確に一致させたからです。
まず、カスタム モジュールgames.pyがあります。
class Player(object):
""" A player for a game. """
def __init__(self, name, score = 0):
self.name = name
self.score = score
def __str__(self):
rep = self.name + ":\t" + str(self.score)
return rep
def ask_yes_no(question):
""" Ask a yes or no question. """
response = None
while response not in ("y", "n"):
response = input(question).lower()
return response
def ask_number(question, low, high):
""" Ask for a number within a range """
response = None
while response not in range (low, high):
response = int(input(question))
return response
if __name__ == "__main__":
print("You ran this module directly (and did not 'import' it).")
input("\n\nPress the enter key to exit.")
そして今、SimpleGame.py
import games, random
print("Welcome to the world's simplest game!\n")
again = None
while again != "n":
players = []
num = games.ask_number(question = "How many players? (2 - 5): ", low = 2, high = 5)
for i in range(num):
name = input("Player name: ")
score = random.randrange(100) + 1
player = games.Player(name, score)
players.append(player)
print("\nHere are the game results:")
for player in players:
print(player)
again = games.ask_yes_no("\nDo you want to play again? (y/n): ")
input("\n\nPress the enter key to exit.")
したがって、これはまさにコードが本の中でどのように表示されるかです。プログラムを実行すると、でエラーが発生IndentationError
しfor i in range(num):
ます。これが起こると予想していたので、変更して、各行の前にある 1 つのタブまたは 4 つのスペースを から に削除しfor i in range(num)
ましたagain = games.ask_yes_no("\nDo you want to play again? (y/n): ")
。
この後、出力は次のとおりです"Welcome to the world's simplest game!"
。
なぜこれが起こっているのか誰かが私に知らせることができるかどうか疑問に思っていましたか?
また、import games
PYTHONPATH へのパスを追加した後、モジュールは Eclipse で認識されます。