@toohell

Как сделать проверку сообщения на целое число из БД чтоб бот не вылетал?

Суть вопроса в том что в моем коде есть игра орел или решка, и когда пользователь пишет сумму после стороны монетки идут следущие действие. НО если вместо суммы написать сумму+еще что то, то бот вылетает и выдает ошибку. в общем надо сделать некую проверку чтобы когда ты писал не число или число с буквами/симвалами он говорил что сумма некорекнта. пробовал так же(я еще новичек) сделать то что if stavka != int то отправляется соощение что сумма не коретна, в итоге при написание любой сумму всфегда выдавало что она не коректна........
.
elif "/решка" in msg.lower():
					db = sqlite3.connect('server4.db')
					db.row_factory = sqlite3.Row
					cursor = db.cursor()
					stavkat = msg.lower().split('/решка ')[-1]
					cursor.execute(f"UPDATE users SET stavka={stavkat} WHERE user_id = {user_id}")
					flip = random.randint(1, 2)	
					if stavkat != int:
						sender(id, "Веддите коректное число!")
					else:
						for mm in cursor.execute(f"SELECT money, stavka FROM users WHERE user_id = {user_id}"):
							if mm['stavka'] > mm['money']:
								sender(id, f"У вас недостаточно средств!\n\nТекущий баланс:{mm['money']}")
								cursor.execute(f"UPDATE users SET stavka = 0 WHERE user_id = {user_id}")
							else:
								if flip == 2:
									cursor.execute(f"UPDATE users SET stavka = {stavkat} WHERE user_id = {user_id}")
									for m in cursor.execute(f"SELECT money, stavka FROM users WHERE user_id = {user_id}"): 
										cursor.execute(f"UPDATE users SET money = money+{m['stavka']} WHERE user_id = {user_id}")
										sender(id, f"РЕШКА\n @id{user_id}({fullname}) Выиграл {stavkat}")
										cursor.execute(f"UPDATE users SET stavka = 0 WHERE user_id = {user_id}")
										for m2 in cursor.execute(f"SELECT money FROM users WHERE user_id = {user_id}"):
											sender(id, f"Текущий баланс:{m2['money']}")
								else:
									cursor.execute(f"UPDATE users SET stavka = {stavkat} WHERE {user_id}")
									for mmm in cursor.execute(f"SELECT money, stavka FROM users WHERE user_id = {user_id}"):
										cursor.execute(f"UPDATE users SET money = money-{mmm['stavka']} WHERE user_id = {user_id}")
										sender(id, f"РЕШКА\n @id{user_id}({fullname}) Проиграл {stavkat}")
										cursor.execute(f"UPDATE users SET stavka = 0 WHERE user_id = {user_id}")
										for mmm2 in cursor.execute(f"SELECT money FROM users WHERE user_id = {user_id}"):
											sender(id, f"Текущий баланс:{mmm2['money']}")
						db.commit()
  • Вопрос задан
  • 53 просмотра
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
Строковый метод isdigit()
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы