Нет сообщения об ошибке после запуска dragon.py

В настоящее время я начинаю книгу " Изобретите свои собственные компьютерные игры с Python", и по какой-то странной причине, несмотря на многочисленные проверки и нахождение более чем нескольких ошибок (неправильный ввод переменной с использованием ";", когда требуется ":") и т. д.), мой тип до dragon.py отказывается работать в режиме ожидания.

Хуже, я не получаю сообщение об ошибке; это просто отображает "RESTART: /Users/yosemite/Documents/dragon.py" и я вернулся по приглашению. Официальная версия с сайта, найденная здесь, работает отлично.

У кого-нибудь есть идеи, что я здесь делаю не так? Обновлено: вот мой код, ранее забыл его включить:

import random
import time

def displayIntro():

    print ('You are in a land full of dragons.  In front of you.')
    print ('you see two caves.  In one cave, the dragon is friendly.')
    print ('and will share his reasure with you.  The other dragon')
    print ('is greedy and hungry, and will eat you on sight.')
    print()

def chooseCave():
    cave = ''
    while cave != '1' and cave !='2':
        print ('Which cave will you go into?  ( 1 or 2 )')
        cave = input()

    return cave

def checkCave(chosenCave):
    print ('You approach the cave...')
    time.sleep(2)
    print ('It is dark and spooky...')
    time.sleep(2)
    print ('A Large dragon jumps out in front of you!  He opens his jaws 
    and...')
    print()
    time.sleep(2)

    friendlyCave = random.randint(1, 2)

    if chosenCave == str(friendlyCave):
        print('Gives you his treasures!')
    else:
        print('Goobles you up in onebite!')

    playAgain = 'yes'
    while playAgain =='yes' or playAgain == 'y':

        displayIntro()

        caveNumber = chooseCave()

        checkCave(caveNumber)

        print('Do you want to play again? (yes or no)')
        playAgain = input()

1 ответ

Размещенный вами код после правильного отступа импортирует два модуля, определяет три функции и затем завершается. Отображение запроса о завершении программы - это то, что IDLE должен делать.

Добавление следующего вызова функции в конце запускает выполнение.

checkCave (chooseCave ())

Если вы запустили программу из консоли (mac?) С

python -i /Users/yosemite/Documents/dragon.py

вы бы видели такое же поведение, появление >>> незамедлительный.

Другие вопросы по тегам