Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 11, 2020 00:57:38

kun_kun
Зарегистрирован: 2020-04-11
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с инструкцией if

 name = input("Ваше имя: ")
age = int(input("Ваш возраст: "))
print("Выберите класс из предложенных: Маг, Воин, Лучник")
sleep(2.5)
cl = str(input())
while True:
	if cl != ["Маг", "Воин", "Лучник"]:
		print("Такого класса не существует в игре, выберите существующие:")
		print("Маг, Воин, Лучник")
		cl = str(input())
	else:
		break

Вот, в общем то код, я не могу понять, почему в моменте с if он просто не видит, что в переменной записан текст. Помогите решить проблему, пожалуйста

Отредактировано kun_kun (Апрель 11, 2020 00:58:22)

Офлайн

#2 Апрель 11, 2020 01:14:38

kun_kun
Зарегистрирован: 2020-04-11
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с инструкцией if

Я скинул скрин, где в цикле видно, что команда if просто не видит текст, который записан в переменной

Прикреплённый файлы:
attachment s7eaMCH.png (9,4 KБ)

Офлайн

#3 Апрель 11, 2020 07:36:17

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

Проблема с инструкцией if

ну как то так (не проверено)

 name = input("Ваше имя: ")
age = int(input("Ваш возраст: "))
print("Выберите класс из предложенных: Маг, Воин, Лучник")
# надеюсь sleep у вас гдето раньше импортирован / объявлен
sleep(2.5)
cl = str(input())
while True:
	if cl in ["Маг", "Воин", "Лучник"]:
               break
	else:
		print("Такого класса не существует в игре, выберите существующие:")
		print("Маг, Воин, Лучник")
		cl = str(input())



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Офлайн

#4 Апрель 11, 2020 07:39:59

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Проблема с инструкцией if

kun_kun
if он просто не видит
Вы зря наделяете if человеческими качествами, у него нет глаз, он ничего видеть не может, все происходит ровно так, как написано в документации раздел 6.10:
https://docs.python.org/3/reference/expressions.html
Если коротко то строка списку никогда не равна.
Рекомендую также
https://docs.python.org/3/library/functions.html#input
Поскольку код содержит бесполезный str
может вам будет полезно и интересно порисовать перед реализацией кода
https://en.wikipedia.org/wiki/Control-flow_diagram



Отредактировано doza_and (Апрель 11, 2020 07:43:12)

Офлайн

#5 Апрель 11, 2020 07:48:25

kun_kun
Зарегистрирован: 2020-04-11
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с инструкцией if

AD0DE412
ну как то так (не проверено)
Благодарю за помощь, спасибо.
Я ваши советы учту

Офлайн

#6 Апрель 11, 2020 07:57:43

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Проблема с инструкцией if

AD0DE412
ну как то так
:( Ну вы же опытный воин!!!
# Зачем тут спать?? пользователя нервировать? те черный экран и на ввод не реагируем??
# sleep(2.5)
#cl = str(input()) Зачем это два раза городить???
variants = ["Маг", "Воин", "Лучник"]:
while True:
cl = input(f"напечатайте одно из {variants}")
if cl in variants:
break



Отредактировано doza_and (Апрель 11, 2020 08:02:25)

Офлайн

#7 Апрель 11, 2020 08:55:59

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

Проблема с инструкцией if

да настроение какое то пришибленное .. а так да .. хочешь помочь - помогай правильно



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version