Проблема с if elif aiogram
@dp.message(Command('cifra'))
async def cmd_dice(message: types.Message):
import random
rndm = str(random.randint(1, 2))
z=1
n=2
if rndm = z:
await message.answer("1" + rndm)
elif rndm = n:
await message.reply("ваше число 2" + rndm)
Что не так в этом куске кода? Мне нужно вывести определенное сообщение при определенном результате Т.е рандом выдает число 2 и выводится сообщений "ваше число 2",а если число 1 - выводится сообщение "ваше число 1". Думаю, суть ясна =D
Ответы (2 шт):
=
- это присваивание, а сравнение это ==
У вас же получается что в if вы присваиваете переменной rndm значение из переменно z. И такая операция всегда возвращает true, а значит всегда выполняется первое условие.
Плюс ко всему вы зачем-то конвертируете число, которое вам вернула функция randint в строку, а потом эту строку сравниваете с числом.
В переменной rndm у вас храниться строковая 1 или 2, чему свидетельствует str
rndm = str(random.randint(1, 2))
Чтобы получить ожидаемый результат вы можете воспользоваться следующим кодом
from random import randint
rand_int = randint(1, 2)
if rand_int == 1:
await message.answer('Вам выпало 1')
else:
await message.answer('Вам выпало 2')