Как устранить проблему невыполнения алгоритма? Запускаю программу , при выборе персонажа программа заканчивается , хотя должна дальше выводить текст и поле ввода , как решить ? import randomimport random class Dog: def __init__(self, name, age): self.name = name self.age = age #print('Ишак создан') def sit(self): print(self.name.title + ' сел ') def jump(self): print(self.name.title + ' прыгнул ') def death(self): print(self.name.title + ' Ваш помер ') def fight(self): print('На' + self.name.title + 'Напали' + random.randint(1, 30) +'живодера') angryM = Dog('Злой пес Миша' , 18) chechenM = Dog('Миша Чеченец ' , 31) kolM = Dog('Сын Колесниковича и Миши' , 7) print('Cимулятор Миши') print('1 - Злой пес Миша') print('2 - Миша Чеченец ') print('3 - Сын Колесниковича и Миши') operation=input('Выберите персонажа:') if operation == 1: print('Вы выбрали' + angryM.name) ang=input('продолжайте бегать ...') if ang == '1': angryM.fight

2 Дек 2021 в 19:58
268 +1
1
Ответы
1

Проблема заключается в том, что при сравнении введенного значения operation с числом, вы выбираете тип данных чисел, а не строк. Для сравнения строки и числа, нужно преобразовать входные данные в один и тот же тип данных.

Для исправления проблемы, вам необходимо преобразовать введенное значение в строку <code>str</code><code>str</code><code>str</code> при сравнении с числом.

Пример исправленного кода:

import random
class Dog:
def __init__self,name,ageself, name, ageself,name,age:
self.name = name
self.age = age
def sitselfselfself:
printself.name+′сел′self.name + ' сел'self.name+сел
def jumpselfselfself:
printself.name+′прыгнул′self.name + ' прыгнул'self.name+прыгнул
def deathselfselfself:
printself.name+′Вашпомер′self.name + ' Ваш помер'self.name+Вашпомер
def fightselfselfself:
print′На′+self.name+′напали′+str(random.randint(1,30))+′живодера′'На ' + self.name + ' напали ' + str(random.randint(1, 30)) + ' живодера'На+self.name+напали+str(random.randint(1,30))+живодера
angryM = Dog′ЗлойпесМиша′,18'Злой пес Миша', 18ЗлойпесМиша,18
chechenM = Dog′МишаЧеченец′,31'Миша Чеченец', 31МишаЧеченец,31
kolM = Dog′СынКолесниковичаиМиши′,7'Сын Колесниковича и Миши', 7СынКолесниковичаиМиши,7
print′CимуляторМиши′'Cимулятор Миши'CимуляторМиши
print′1−ЗлойпесМиша′'1 - Злой пес Миша'1ЗлойпесМиша
print′2−МишаЧеченец′'2 - Миша Чеченец'2МишаЧеченец
print′3−СынКолесниковичаиМиши′'3 - Сын Колесниковича и Миши'3СынКолесниковичаиМиши
operation = input′Выберитеперсонажа:′'Выберите персонажа: 'Выберитеперсонажа:
if operation == '1':
print′Вывыбрали′+angryM.name'Вы выбрали ' + angryM.nameВывыбрали+angryM.name
ang = input′продолжайтебегать...′'продолжайте бегать... 'продолжайтебегать...
if ang == '1':
angryM.fight

Теперь код должен правильно обрабатывать выбранный персонаж и продолжать выполнение программы правильно.

17 Апр 2024 в 08:20
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир