Форум сайта python.su
0
Я школьник, нам задали по информатике написать код на Python, который будет находить гипотенузу по теореме Пифагора. Т.е.: пользователь вводит длину первого и второго катета, после чего на экран выводится на экран. Код должен быть максимально коротким. Вот что у меня получилось:
#Импортируем модуль для работы с математическими функциями import math #Ввод длины катетов kat1 = input("Введите длину первого катета:") kat2 = input("Введите длину второго катета:") #Возводим катеты в квадрат katq1 = kat1 ^2 katq2 = kat2 ^2 gipq = katq1 + katq2#Находим сумму квадратов катетов gip = math.sqrt(gipq) #Находим квадратный корень из квадрата гипотенузы print gip #Выводим результат
Офлайн
15
Ну можно так например:
import math kat1 = float(input("Введите длину первого катета:")) kat2 = float(input("Введите длину второго катета:")) print(math.hypot(kat1, kat2))
Отредактировано smoke853 (Фев. 12, 2013 19:04:00)
Офлайн
20
Можно вычислить все одной формулой без промежуточных результатов
gip = math.sqrt(kat1^2 + kat2^2)
Офлайн
0
smoke853Нас учили что ^- возведение в степень
P.S.S. также kat1 ^2 - это не возведение в квадрат насколько я знаю, тут должно быть kat1 ** 2 или pow(kat1, 2).
. Буду выяснять…SotericLike!
Не совсем ясно почему и от кого исходит требование “как можно короче”. Лучше понятнее, чем короче
Отредактировано BlockMan (Фев. 12, 2013 19:09:02)
Офлайн
15
BlockMan, в Python насколько я знаю, ^ - это битовая операция XOR (исключающая ИЛИ).
А проверил я очень просто: 10 в квадрате или во второй степени это 100, или 10*10 или 10 ** 2. если написать 10 ^2 будет 8 
Офлайн
0
smoke853Не выйдет, из math'a мы изучили толькоimport math kat1 = float(input("Введите длину первого катета:")) kat2 = float(input("Введите длину второго катета:")) print(math.hypot(kat1, kat2))
math.sqrt()
smoke853Уже сам проверил, значит буду учиться сам дополнительно, отдельно от школьной программы. Язык понравился
BlockMan, в Python насколько я знаю, ^ - это битовая операция XOR (исключающая ИЛИ).А проверил я очень просто: 10 в квадрате или во второй степени это 100, или 10*10 или 10 ** 2. если написать 10 ^2 будет 8

Офлайн
15
BlockMan, наоборот хорошо что вы изучаете python, мы в школе, технаре, универе, вообще не какие языки не изучали
А я хотел бы чтобы у нас хоть что-то было
Канеш я не на программиста учился, ну хоть базу бы дали.
По поводу hypot, hypot это тоже самое что sqrt(x*x + y*y).
Офлайн
0
smoke853Да, хорошо. Особенно если учесть тот факт, что по мнению нашего учителя 1ТБ = 1024КБ, то вообще великолепно!
BlockMan, наоборот хорошо что вы изучаете python
Офлайн
253
без import math
a,b=map(float,input().split()) print((a**2+b**2)**0.5)
Офлайн
0
doza_andУже помогли)))
без import math
Офлайн