Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 19.12.2024
Сообщений: 2

Разный вывод одинаковых кодов

19.12.2024, 12:13. Показов 554. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, я начинающий, и никак не могу понять - почему два одинаковых кода (1 - мой, писал с нуля в Pycharm; 2 - скопипастил с книги во всё тот же Pycharm) работают по-разному? Ниже два этих кода и скрины результатов их работы (и тот и другой работают корректно, за исключением места, которое я выделил. Я убрал все пробелы, чтобы не "растягивать" код). OS: Windows11, Pycharm Community 2024.1.5, Python 3.12.6
1. Мой код:


Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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. Код из книги:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
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()
Результаты работы в файлах (1- mycodeoutput, 2- bookcodeoutput)

Проблема только в том, что мой код требует выбирать пещеру два раза, а код из книги - как и надо - один раз. Почему так получается? Предполагаю, что проблема не в самом коде (сравнивал - всё одинаково), но в чем..?
Миниатюры
Разный вывод одинаковых кодов   Разный вывод одинаковых кодов  
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.12.2024, 12:13
Ответы с готовыми решениями:

2 одинаковых куска кода - вывод разный
В общем, игра крестики нолики. Сам написал - работает криво, скопировал у автора - работает идеально. В общем, вот кусок мой ...

Разный размер у одинаковых дуг
Как такое может быть?

Разный фпс на одинаковых сборках
Всем добрый! Есть две сборки: 1)вид 2070oc, проц ryzen 5 2700x, оператива 2x8gb 3466, мать rog 470f, ssd m2 a400 2)все тоже самое...

2
 Аватар для abit
870 / 529 / 149
Регистрация: 03.02.2013
Сообщений: 1,858
19.12.2024, 12:17
Лучший ответ Сообщение было отмечено iSmokeJC как решение

Решение

Цитата Сообщение от Ouosamu Посмотреть сообщение
def check_cave(chosen_cave):
    print("You're walking towards the cave ", choose_cave(), "...")
cave_number = choose_cave()
вы тут два раза вызываете choose_cave()
4
0 / 0 / 0
Регистрация: 19.12.2024
Сообщений: 2
19.12.2024, 15:11  [ТС]
Ааа.... спасибо большое, увидел!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.12.2024, 15:11
Помогаю со студенческими работами здесь

Разный фпс на +-одинаковых системах
Здравствуйте друзья, такой прикол, что сегодня был у брата, у него конфигурация следующая: Проц: AMD Ryzen 5 1600 Видеокарта: GTX 1060...

Разный результат одинаковых действий
В файле во вложении на первом листе исходные данные. На втором листе результат замены всех точек на запятые с помощью кнопки "Найти и...

Три почти одинаковых файла, разный итог
всем привет! подскажите, почему в трёх практически идентичных файлах либо не показывается текст совсем, либо показывает в виде...

Два одинаковых файла, а размер у них разный
Здарсте, всех с Наступающим. У меня вопрос вообщем, из-за чего два одинаковых файла на разных пк имеют разный вес? После копирования...

Разный пинг на разных провайдерах до одинаковых узлов
Ситуация в следующем: СПБ.Есть куча провайдеров,до игровых серверов(например EA)пинг на одних подскакивает до 200 и выше,что мешает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru