frendlix
@frendlix
Event-destroy

Почему if else не работает?

Есть такой код:

@dp.message_handler(content_types=['text'], state=Registration.choose_gender)
async def choose_gender(message: types.Message, state: FSMContext):
	gender = message.text
	users = sqlite3.connect('users.db')
	cur = users.cursor()
	if gender == MALE or FEMALE:#ЕСЛИ М ИЛИ Ж
		cur.execute("UPDATE users SET gender = ? WHERE user_id = ?", (gender, message.from_user.id))
		await message.answer(GENDER_OK, 
					reply_markup=ReplyKeyboardRemove())
		users.commit()
	else:
		await message.answer('Выбери один из предложенных вариантов!')

Под параметрами MALE or FEMALE таятся два смайлика - М и Ж соответственно
Но почему то код не отрабатывает и он жрёт вообще любой смайл или сообщение...
То есть, он должен проверять если есть один из двух смайликов М и Ж, то заносить их в БД и всё ок
Если нет смайликов или смайлик другие - писать сообщение об ошибке...
Что не так написано?
  • Вопрос задан
  • 121 просмотр
Решения вопроса 1
flapflapjack
@flapflapjack
на треть я прав
Попробуйте так
--if gender == MALE or FEMALE:
++if gender == MALE or gender==FEMALE:


У вас идет проверка на истинность сравнения gender с MALE, либо если FEMALE - истина. А так как FEMALE != false, выражение всегда истинно.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
SpectrumData Екатеринбург
от 150 000 до 200 000 ₽
Гринатом Москва
от 150 000 ₽
DIGITAL SECTOR Краснодар
от 150 000 до 250 000 ₽
26 июн. 2024, в 02:23
5000 руб./за проект
26 июн. 2024, в 00:28
5000 руб./за проект
25 июн. 2024, в 23:31
1500 руб./за проект