Форум сайта python.su
1
Доброго вечера, товарищи. Не пойму как проверить типы переменных. Просвятите пожалуйста.
class Plus_to_price: def __init__(self, sale, percent): newsale = int(sale) / 100 * (100 + int(percent)) print ("Новая цена равна -", int(newsale)) class Main_function(Plus_to_price): def __init__(self): while True : sale = input("Введите нынешнюю цену -> ") percent = input("Введите процент, на который необходимо повысить цену -> ") if sale or percent == True: Plus_to_price.__init__(self, int(sale), int(percent)) else: print ("Произошла ошибка! Вы не ввели данные!") print ("\n****************************\n") main_function = Main_function()
Офлайн
7
>>> a = 5 >>> isinstance(a, int) True >>> isinstance(a, str) False
Офлайн
857
>>> a = 5 >>> type(a) == int True >>>
Офлайн
19
http://stackoverflow.com/questions/1549801/differences-between-isinstance-and-type-in-python
>>> a = 5 >>> isinstance(a, int) True >>> isinstance(a, object) True >>> type(a) == int True >>> type(a) == object False >>>
Отредактировано PanovSergey (Фев. 12, 2014 18:52:45)
Офлайн
>>> type(a) == int
Офлайн
19
dimy44подробнее? а то я вас не понимаю.
такая запись- имхо моветон
Офлайн
Ну не по-питоняч'е это. Типа как if x == None вместо if x is None, isinstance да, норм.
Отредактировано dimy44 (Фев. 12, 2014 20:11:32)
Офлайн
568
PanovSergeyisinstance, в отличие от type
подробнее? а то я вас не понимаю.
print type(s) in [unicode, str]
print isinstance(s, basestring)
Офлайн
19
FishHookСпасибо, Кэп!
isinstance, в отличие от type
Отредактировано PanovSergey (Фев. 13, 2014 07:21:10)
Офлайн
1
Ребят, проверять научился, но в Python 3, все данные в input() типа str, так вот мне необходимо сделать так чтобы, пропускало только цифры, как можно проверить цифры ли в переменной, пример предоставляю:
class Plus_to_price: def __init__(self, sale, percent): newsale = int(sale) / 100 * (100 + int(percent)) print ("Новая цена равна -", int(newsale)) class Change_type(Plus_to_price): def __init__(self, sale, percent): if isinstance(sale, int) or isinstance(percent, int) is True: #здесь ясно что будет False Plus_to_price.__init__(self, int(sale), int(percent)) else: print ("Ошибка") class Main_function(Change_type): def __init__(self): while True : sale = input("Введите нынешнюю цену -> ") percent = input("Введите процент, на который необходимо повысить цену -> ") Change_type.__init__(self, sale, percent) # а если преобразовывать в int, то в метод попадают кривые переменные main_function = Main_function()
Офлайн