Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Где ошибка  (Прочитано 1935 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн A.J

  • Автор темы
  • Участник
  • *
  • Сообщений: 230
    • Просмотр профиля
Где ошибка
« : 12 Марта 2015, 20:01:30 »
Под скажите  где ошибка в коде как за кончить цыкал.
Не  завершается что не так спасибо заранее


Код: (Python) [Выделить]
# -*- coding: utf-8 -*-
# Вернемся к игре Анаграммы
'''
Анаграммы (Word Jumble) страница 132

Компьютер выбрипает какое-либо и хаотически переставляет его буквы
Задача игрока -восстановить искодные слова
'''
import random
# создадим последовательность слов. из которых копьютер будет выбирать
WORDS = ('питон','анаграмма', 'простая', 'сложная', 'ответ', 'подстаканник')



# случайным образом выберем из последовательности одно слово
word = random.choice(WORDS)

# создадим переменную с кторой будет затем сопоставлена версия игрока
correct = word

'''
Создать пустую анаграмму
до тех пор пока исходное слово содержит хотя бы одну букву:
   изъять из слова случайную букву
   рисоединить эту букву к анаграмме
'''
# создадим анаграмму выбранного слова в  которой буквы будут расставлены хаотично
jumble = " "

# настройка цикла

while word:
    postion = random.randrange(len(word))# Выбор сnучайной позиции в слове
    # новая версия jumble
    jumble += word[postion]
    jumble = word[:postion] + word[postion +1:]# Создать новый вариант строки



# Программа приветствует игрока
# Чачало игры

    print(
    '''
    Добро пожаловать в игру Анаграммы!
    Надо перестравить буквы так  чтобы
    получилось оспасленное слово.
    Для выхода нажмите Enter не вводя своей версии.
    '''
)
print('Вот анаграмма: Jumble')

guess = input('\nПопробуйте отгадать исходное слова: ')
while guess != correct and  guess != '':
    print('К сожалению вы неправы')
    guess = input('Попрабуйте отгадать исходное слово: ')
    #Поздравление с правильно отгаданным сnовом
    if guess == correct:
        print('Да именно так! Вы отгадали')
# Конец игры
print('Спасибо за игру')
input('enter нажмите чтобы закрыть')

« Последнее редактирование: 13 Марта 2015, 11:08:54 от Sly_tom_cat »

Оффлайн alsoijw

  • Старожил
  • *
  • Сообщений: 4062
  • Fedora 25 GNOME 3 amd64
    • Просмотр профиля
Re: Где ошибка
« Ответ #1 : 12 Марта 2015, 20:07:10 »
A.J, цикл можно завершить когда условие станет истинным. К примеру while(variant != slovo)
Пользователь решил продолжить мысль 12 Марта 2015, 20:08:32:
Зы изобретён тег
Код: (python) [Выделить]
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: Где ошибка
« Ответ #2 : 13 Марта 2015, 09:55:56 »
Зы изобретён тег
Код: (python) [Выделить]
Любопытно

Оффлайн Sly_tom_cat

  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12139
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Re: Где ошибка
« Ответ #3 : 13 Марта 2015, 11:36:31 »
A.J, вы программу то перепечатывали или сами писали?

Я нашел две ошибки.

1 - неправильный отступ одного из операторов (в результате чего он выводится в цикле а не один раз как должно быть по логике программы)
2 - неверно присвоение в цикле (что не позволяет ему закончится)

Еще одна не совсем красивая вещь - использовать неявное преобразование в булевое значение в условие цикла.

Все ошибки в районе строк 30 - 47.

Расписывать правильный вариант не буду - вы же сами учитесь, вот и исправьте ошибки сами по моим подсказкам.

ЗЫ Грамматические ошибки в комментариях я не считал - сам пишу с ошибками часто и просто даже не все вижу. А главное - на выполнение программы это не влияет :)
« Последнее редактирование: 13 Марта 2015, 12:14:47 от Sly_tom_cat »
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн alsoijw

  • Старожил
  • *
  • Сообщений: 4062
  • Fedora 25 GNOME 3 amd64
    • Просмотр профиля
Re: Где ошибка
« Ответ #4 : 13 Марта 2015, 15:47:44 »
alexander.pronin, что любопытного?
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: Где ошибка
« Ответ #5 : 19 Марта 2015, 16:06:52 »
alexander.pronin, что любопытного?
Я на эту фишку не обращал внимания раньше.

Оффлайн A.J

  • Автор темы
  • Участник
  • *
  • Сообщений: 230
    • Просмотр профиля
Re: Где ошибка
« Ответ #6 : 29 Марта 2015, 20:15:07 »
Ошибку с отступам я сам нашел  и решил но все равно спасибо.
Программу списал с книги

Оффлайн Sly_tom_cat

  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12139
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Re: Где ошибка
« Ответ #7 : 29 Марта 2015, 22:32:18 »
A.J, похоже переписали с ошибками (и не тольуо в коментариях). Хотя допускаю что в книге опечатка. Но вы бы могли сами проанализировать код что бы понять что там нет выхода из цикла из-за неправильного присвоения.
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн БТР

  • Заслуженный пользователь
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 6294
    • Просмотр профиля
Re: Где ошибка
« Ответ #8 : 30 Марта 2015, 09:45:39 »
(Нажмите, чтобы показать/скрыть)

Оффлайн A.J

  • Автор темы
  • Участник
  • *
  • Сообщений: 230
    • Просмотр профиля
Re: Где ошибка
« Ответ #9 : 30 Марта 2015, 09:54:30 »
(Нажмите, чтобы показать/скрыть)


Что за  IDE модуль проверки орфографии о чем  ты я нечего не подключал

Оффлайн Sly_tom_cat

  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12139
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Re: Где ошибка
« Ответ #10 : 30 Марта 2015, 10:38:30 »
A.J, ну практически во всех IDE есть модули проверки орфографии. У вас при перепечатывании куча ошибок и часть из них - банально орфографические - которые отловил бы модуль проверки. Но логическая ошибка (в коде) у вас орфографически написана верно, но совершенно не верно по логике.
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн A.J

  • Автор темы
  • Участник
  • *
  • Сообщений: 230
    • Просмотр профиля
Re: Где ошибка
« Ответ #11 : 30 Марта 2015, 13:07:50 »
Скажите а есть ли такой  модуль в PyCharm Community Edition  или нет

Оффлайн Sly_tom_cat

  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12139
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Re: Где ошибка
« Ответ #12 : 30 Марта 2015, 13:38:09 »
Гугление в течении пары минут дает такое : https://www.jetbrains.com/pycharm/help/spellchecking.html
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн alsoijw

  • Старожил
  • *
  • Сообщений: 4062
  • Fedora 25 GNOME 3 amd64
    • Просмотр профиля
Re: Где ошибка
« Ответ #13 : 30 Марта 2015, 16:31:16 »
Gedit легко проверяет ошибки, удобен(консоль, консоль питона, дерево файлов)
(Нажмите, чтобы показать/скрыть)
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

Оффлайн Sly_tom_cat

  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12139
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Re: Где ошибка
« Ответ #14 : 30 Марта 2015, 18:46:04 »
alsoijw, для интерпретируемого языка лучший отладчик - консоль с интерпретатором.

Ну в проекте побольше можно предусмотреть вывод отладочной информации (при включенном режиме отладки).

Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

 

Страница сгенерирована за 0.062 секунд. Запросов: 21.