Форум сайта python.su
0
Уважаемые господа кодеры!
Дайте пожалуйста совет, как написать исключение на то, чтобы бы ловилось отрицательное значение?
например примитивный код:
def Square(): a=float(raw_input("Сторона а: ")) b=float(raw_input("Сторона b: ")) square =a*b print square Square()
def Square(): while True: try: a=float(raw_input("Сторона а: ")) b=float(raw_input("Сторона b: ")) if a and b>=0: break else: print "negative number" except ValueError: print"Wrong Value" square =a*b Square()
Отредактировано Protoss (Ноя. 26, 2012 23:51:37)
Офлайн
75
А ‘if’ чем не угодил?
Офлайн
0
Так я написал через if, но мне кажется, что можно все сделать гораздо лучше
Офлайн
16
ProtossВот прям этот? Без закрывающих кавычек в raw_input и с конструкцией:
Этот код норм работает
def safe_input(promt): error_message = "Value must be integer and greater or equal than zero" while True: val = raw_input(promt) try: val = int(val) except ValueError: print(error_message) continue if val < 0: print(error_message) continue return val a = safe_input("a: ") b = safe_input("b: ") square = a * b print(square)
Офлайн
0
Спасибо огромное! А то я все через одно место!
Без кавычек он конечно не работает. Исправил.
Офлайн
16
if a and b>=0:это - тоже неправильно
a = -5
b = 3
if a and b >= 0:
print("good")
else:
print("bad")
Офлайн
0
GaiveR, спасибо. Но предыдущий вариант настолько мне понравился, что буду использовать его в как шаблон))
Офлайн