Как определить что пользователь отправил число боту а не строку?
Я хочу сделать проверку на то что пользователь отправил команду с цифрами а не строки
@bot.command()
async def greetingsCHANL(ctx,amount: int = None ):
if amount == None:
await ctx.send(f"{ctx.author.name} Введи iD канала преведствия")
else:
if type(amount) == str: #isinstance
await ctx.send(f"{ctx.author.name} Введи iD канала преведствия")
else:
cursorLB.execute('UPDATE allvariables SET greetingsCHANL =?', [f"{amount}"])
# cursor.execute("UPDATES users SET date +=? WHERE id = ?",(massage,member.id))
Allvariables.commit()
await ctx.send(cursorLB.execute("SELECT greetingsCHANL FROM allvariables ".format()).fetchone()[0])
Ответы (2 шт):
Автор решения: Anaconda
→ Ссылка
Можно сделать что-то вроде:
number = int(input("Введите число: "))
И прописать исключения try, exept, для обработки, если пользователь введëт не число.
Автор решения: TRIBUTE
→ Ссылка
Вот решение проблемы:
@bot.command()
async def greetingsCHANL(ctx,amount: Optional[str] = None ):
if amount == None:
await ctx.send(f"{ctx.author.name} Введи iD канала преведствия")
else:
if amount.isdigit() == False: #isinstance
await ctx.send(f"{ctx.author.name} Введи iD канала преведствия")
else:
cursorLB.execute('UPDATE allvariables SET greetingsCHANL =?', [f"{amount}"])
# cursor.execute("UPDATES users SET date +=? WHERE id = ?",(massage,member.id))
Allvariables.commit()
await ctx.send(cursorLB.execute("SELECT greetingsCHANL FROM allvariables ".format()).fetchone()[0])