


Не работает 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 работал,а у последней нет.
Простите если мутно объяснил
ЗАЧЕМ использовать для этого if??? Всё делается намного проще:
@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)])
Из массива с именами файлов выбираем значение по случайному индексу.
У тебя в send( скобка правая не закрыта
Просто иф пиши