Форум сайта python.su
Подскажите как правильно написать класс валидации, ну к примеру, который будет проверять числ введенное с клавиатуры на то int это или нет
Помогите, не знаю с чего начать, как правильно это записать! Написала функции, а как теперь класс написать не знаю!
t=input('enter data: ') def Int(t): if type(t)==int: raw_input('type - int') Int(t)
Офлайн
вам бы немного еще почитать литературы!
class valid_int: def __init__(self, n): self.n = n def valid(self): return type(self.n) == int a = valid_int(10) b = valid_int('hello') c = valid_int(True) d = valid_int(10.5) print a.valid() print b.valid() print c.valid() print d.valid()
class valid_int: @staticmethod def valid(n): return type(n) == int a = 10 b = 'hello' c = True d = 10.5 print valid_int.valid(a) print valid_int.valid(b) print valid_int.valid(c) print valid_int.valid(d)
Офлайн
>>> import re >>> >>> class Validator: ... ... def is_int(self, s): ... return re.search(r'^[-+]?\d+$', s) is not None ... >>> v = Validator() >>> v.is_int('0') True >>> v.is_int('1') True >>> v.is_int('10') True >>> v.is_int('-1') True >>> v.is_int('0.5') False >>>
Отредактировано py.user.next (Апрель 23, 2015 00:17:52)
Офлайн
py.user.next
t=input('enter data: ')
Отредактировано terabayt (Апрель 23, 2015 00:26:33)
Офлайн
terabaytКак бы обработки исключения при input() не увидел, значит ей не input() нужен, а просто raw_input().
а так как используется raw_input то эт 2 пайтон
skripka696
который будет проверять числ введенное с клавиатуры на то int это или нет
Офлайн
py.user.nextможет она прост не знает о лонг
как бы она даже про long не спрашивает, хотя там и long может быть
py.user.nextну хочет проверить int это или float
Иначе просто нет смысла делать валидатор
Офлайн
terabaytНу, она говорит, что что-то вводит, а вводить надо через raw_input(). Не зря же input() удалили из питона, этот raw_input() с eval() не оправдал себя.
ну хочет проверить int это или float
Отредактировано py.user.next (Апрель 23, 2015 10:46:20)
Офлайн
py.user.nextну об этом и нужно было написать к коду
То, что она использует input() для ввода, - неверно.
Офлайн
terabaytА что я там писал? Уже не помню.
почему вы изменили?
Офлайн
py.user.nextесли я не ошибась, то что-то наподобии
А что я там писал? Уже не помню.
class Validator: def is_int(self, s): return type(s) == int def is_str(self, s): return type(s) == str
py.user.nextнет
Я, по-моему, для третьего питона писал, а там неправильного input() нет
Офлайн