check_message_for_trans_status(message_text: str):
if "/" in message_text:
message_text = message_text.split("/")
if message_text[0] <= message_text[1]:
if message_text[0].isdigit():
if message_text[1].isdigit():
return True
else:
return False
else:
return False
else:
return False
else:
return False
Так луче не писать
А как лучше?
По крайне мере нужно избавиться от такого ада из else
Чего хочешь добиться ?
Чтобы сообщение от пользователя имело структуру "a/b", например "5/8". При этом "a" должно быть меньше или равняться "b", "a" и "b" должны быть числами
Я бы так : 0. Не валить все в одну функцию, раскидать ответственность между функциями. 1. Функция, ее работа: Разделить данные на пример в список, работой по сепоратору "/", вернуть значение 2. Функция которая проверит соответствия значения в списке, пример [1, 4] проверит что он из двух элемнетов и также организует проверку на число если да, и идем дальше. В противном случаи функции пускай возвращают False.
Я тупо убрал .isdigit и всё заработало, проверка на то что это инт вообще не понадобилась, само фолс возвращает если это текст, а не число. def check_message_for_trans_status(message_text: str): if "/" in message_text: message_text = message_text.split("/") a = int(message_text[0]) b = int(message_text[1]) if a <= b: return True else: return False else: return False
Тем что isdigit почему-то не работает когда message_text = "2/10", странно конечно, щас по другому попробую сделать - поменять местами <= с isdigit
Я их тупо поменял местами и всё заработало.
Я даже не знаю что это такое)
True a <= b else False так кажись
Чёто такое когда-то видел, но не знал что это
return a <= b 😱
Сорри ошибся
Обсуждают сегодня