Top.Mail.Ru
Ответы
Аватар пользователя
11мес
Изменено
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+2

Не работает elif в python

Я пишу дискорд бота, который рандомно отправляет картинки

Вот код:
@bot.command()
async def goofyah(ctx):
await ctx.message.delete()
foto = random.randint(1,5)
if foto == 1:
await ctx.send(file = discord.File('goofy1.jpg')
elif foto == 2:
await ctx.send(file = discord.File('goofy2.jpeg')
elif foto == 3:
await ctx.send(file = discord.File('goofy3.jpeg')
elif foto == 4:
await ctx.send(file = discord.File('goofy4.jpeg')
elif foto == 5:
await ctx.send(file = discord.File('goofy5.jpg')

Возможно это связано с тем, что я до этого использовал elif в другой команде, хотя до этого всё работало.

Вот прошлые комманды где я использовал elif:

@bot.command()
async def YesorNo(ctx):
await ctx.message.delete()
num = random.randint(1,2)
try:
num = float(num)
except:
await ctx.send('Error')
return
if num == 1:
await ctx.send('Yes!')
elif num == 2:
await ctx.send('No!')

@bot.command()
async def YoN(ctx):
await ctx.message.delete()
YorN = random.randint(1,6)
if YorN == 1:
await ctx.send('Да')
elif YorN == 2:
await ctx.send('Нет')
elif YorN == 3:
await ctx.send('Скорее да чем нет')
elif YorN == 4:
await ctx.send('Скорее нет чем да')
elif YorN == 5:
await ctx.send('Это секрет')
elif YorN == 6:
await ctx.send('Неизвестно')

Я пробовал менять местами строчки самой первой команды и самой последней. После этого у самой первой команды elif работал,а у последней нет.

Простите если мутно объяснил

По дате
По рейтингу
Аватар пользователя
Новичок
11мес

ЗАЧЕМ использовать для этого if??? Всё делается намного проще:

1234
 @bot.command()
async def goofyah(ctx):
  await ctx.message.delete()
  await ctx.send(file=discord.File(['goofy1.jpg', 'goofy2.jpeg', 'goofy3.jpeg', 'goofy4.jpeg', 'goofy5.jpg'][random.randint(0, 4)]) 

Из массива с именами файлов выбираем значение по случайному индексу.

Аватар пользователя
Просветленный
11мес

У тебя в send( скобка правая не закрыта

Аватар пользователя
11мес

Просто иф пиши