Добрый день, я начинающий, и никак не могу понять - почему два одинаковых кода (1 - мой, писал с нуля в Pycharm; 2 - скопипастил с книги во всё тот же Pycharm) работают по-разному? Ниже два этих кода и скрины результатов их работы (и тот и другой работают корректно, за исключением места, которое я выделил. Я убрал все пробелы, чтобы не "растягивать" код). OS: Windows11, Pycharm Community 2024.1.5, Python 3.12.6
1. Мой код:
Результат его работы:
2. Код из книги:
Результат его работы:
Проблема только в том, что мой код требует выбирать пещеру два раза, а код из книги - как и надо - один раз. Почему так получается? Предполагаю, что проблема не в самом коде (сравнивал - всё одинаково), но в чем..?
1. Мой код:
import random
import time
def display_intro():
print('''You're in front of two caves and have to walk through one of them.
In the first one lives good dragon, who can do anything you want. In the second
lives bad dragon, who will kill and eat you.''')
print()
def choose_cave():
cave = ''
while cave != '1' and cave != '2':
print('What cave will you choose? (type 1 or 2) ')
cave = input()
return cave
def check_cave(chosen_cave):
print("You're walking towards the cave ", choose_cave(), "...")
time.sleep(2)
print("The darkness inside it makes you thrill...")
time.sleep(2)
print("A huge dragon jumps out in front of you, open it's maw and...")
print()
time.sleep(2)
friendly_cave = random.randint(1, 2)
if chosen_cave == str(friendly_cave):
print('...and says: "Welcome to my palace! You can ask for anything you want!"')
else:
print("...kill and eat you!..")
play_again = 'yes'
while play_again == 'yes' or play_again == 'y':
display_intro()
cave_number = choose_cave()
check_cave(cave_number)
print("Wanna try more? Type yes(y) on no(n): ")
play_again = input()
Результат его работы:
2. Код из книги:
import random
import time
def display_intro():
print('''Вы находитель в землях, заселенных драконами.
Перед собой вы видите две пещеры. В одной из них - дружелюбный дракон, который готов поделиться с вами своими сокровищами. Во второй - жадный и голодный дракон, который мигом вас съест.''')
print()
def choose_cave():
cave = ''
while cave != '1' and cave != '2':
print('В какую пещеру вы войдете? (нажмите 1 или 2')
cave = input()
return cave
def check_cave(chosen_cave):
print('Вы приближаетесь к пещере...')
time.sleep(2)
print('Ее темнота заставляет вас дрожать от страха...')
time.sleep(2)
print('Большой дракон выпрыгивает перед вами! Он раскрывает свою пасть и...')
print()
time.sleep(2)
friendly_cave = random.randint(1, 2)
if chosen_cave == str(friendly_cave):
print('...делится с вами своими сокровищами!')
else:
print('...моментально вас съедает!')
play_again = 'да'
while play_again == 'да' or play_again == 'д':
display_intro()
caveNumber = choose_cave()
check_cave(caveNumber)
print('Попытаете удачу еще раз? (да или нет)')
play_again = input()
Результат его работы:
Проблема только в том, что мой код требует выбирать пещеру два раза, а код из книги - как и надо - один раз. Почему так получается? Предполагаю, что проблема не в самом коде (сравнивал - всё одинаково), но в чем..?