# coding=utf-8
import math
vibor = int(raw_input("Если нужно вычислить длину гипотенузы введите 1, а если катета, введите 2: "))
while vibor != 1 and vibor != 2:
vibor = int(raw_input("Вы невнимательны!!! Если нужно вычислить длину гипотенузы введите 1, а если катета, введите 2: "))
if vibor == 1:
catet_a = int(raw_input("Длина первого катета = "))
while catet_a <= 0:
catet_a = int(raw_input("Длина катета должна быть больше нуля! Вверите ещё раз. Катет = "))
catet_b = int(raw_input("Длина второго катета = "))
while catet_b <= 0:
catet_b = int(raw_input("Длина катета должна быть больше нуля! Вверите ещё раз. Катет = "))
gepotenuza = math.sqrt(catet_a ** 2 + catet_b ** 2)
print("Гипотенуза = " + str(gepotenuza))
elif vibor == 2:
catet_a = int(raw_input("Длина первого катета = "))
while catet_a <= 0:
catet_a = int(raw_input("Длина катета должна быть больше нуля! Вверите ещё раз. Катет = "))
gepotenuza = int(raw_input("Длина гипотенузы = "))
while gepotenuza <= catet_a:
gepotenuza = int(raw_input("Длина гипотенузы должна быть больше длины катета! Введите ещё раз. Гипотенуза = "))
catet_b = math.sqrt(gepotenuza ** 2 - catet_a **2)
print("Катет = " + str(catet_b))
isinstance("", str) # => True
isinstance(0, str) # => False
isinstance("", int) # => False
isinstance(0, int) # => True
# -*- coding: utf-8 -*-
from itertools import starmap, imap
from math import sqrt
options = {str(index):option for (index, option) in enumerate('Cathetus|Hypotenuse'.split('|'), 1)}
if __name__ == '__main__':
while True:
try:
menu = '\n'.join(
starmap('-'.join(chr(0x20)*2).join(['{}']*2).format, options.items())
)
choice = raw_input('\nCalculate:\n%s\n\nYour choice: ' % menu)
side = options[choice]
sign = -1 if int(choice) == 1 else 1
print
query = lambda index: raw_input('Enter side #%s: = ' % index)
sides = sorted(float(x) for x in imap(query, options))
assert 0 < sides[0] <= sides[1], '\nERROR: Length must be a positive number!'
result = sqrt(pow(sides[-1], 2) + sign*(min(sides)**2))
except KeyError:
print '\nERROR: No such option!'
except ValueError:
print '\nERROR: Length must be a number!'
except AssertionError, error_text:
print error_text
else:
print '\nResult: {:.2f}'.format(result)
exit(0)