Я читаю книгу «Python Programming for Absolute Beginner (3-е издание)». Я вхожу в главу, в которой представлены пользовательские модули, и я считаю, что это может быть ошибкой в кодировании в книге, потому что я проверил ее 5 или 6 раз и точно соответствовал ей.Пользовательские модули Python - ошибка с примером кода
Во-первых у нас есть собственный модуль 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
, распознается в Eclipse после того, как я добавил путь к PYTHONPATH.
ваш отступ выглядит неправильно ... я думаю 'num = ...' требуется больше отступа –