Форум сайта python.su
Всем привет!
Заранее извиняюсь, если вопрос покажется глупым, но я только начал изучать основы программирования на языке python по книге:
Д. Ю. Федоров
ОСНОВЫ
ПРОГРАММИРОВАНИЯ
НА ПРИМЕРЕ ЯЗЫКА
PYTHON (2018)
Прохожу тему: “Создание собственных модулей”
В конце параграфа есть задача, которую необходимо решить:
“Найдите площадь треугольника с помощью формулы Герона. Стороны задаются с
клавиатуры. Реализовать вычисление площади в виде функции, на вход которой подаются
три числа, на выходе – площадь. Функция находится в отдельном модуле, где происходит
разделение между запуском и импортированием.”
Вот мой код:
import math def func(s): return math.sqrt(p*(p-a)*(p-b)*(p-c)) if __name__==('__main__'): a=int(input('Введите сторону а: ')) b=int(input('Введите сторону б: ')) c=int(input('Введите сторону с: ')) p=1/2*(a+b+c) print('Площадь треугольника равна: ',func(s))
Отредактировано Novichok_v_programmirovanii (Окт. 29, 2021 15:08:37)
Офлайн
s = 0 пропиши после import math и заработает
у тебя идет функция от s, а s ничему не равно
Отредактировано d-par (Окт. 29, 2021 15:49:30)
Офлайн
Novichok_v_programmirovaniiСкажите,что для вас значит функция,что это такое?расскажите так как вы понимаете
Реализовать вычисление площади в виде функции, на вход которой подаются три числа
Офлайн
>>> def triangle_area(a, b, c): ... p = (a + b + c) / 2 ... return (p * (p - a) * (p - b) * (p - c)) ** 0.5 ... >>> triangle_area(1, 1, (1 ** 2 + 1 ** 2) ** 0.5) 0.49999999999999983 >>> triangle_area(2, 2, (2 ** 2 + 2 ** 2) ** 0.5) 1.9999999999999993 >>>
Офлайн
d-parудалил ненужный параметр s в func(s), он никаким образом не влиял на работу кода. Как видно на скриншорте функция работает исправно и вычисляет периметр и затем площать как надо, ТАМ Я ВЫДЕЛИЛ И УКАЗАЛ ПОСЛЕДОВАТЕЛЬНОСТЬ ВЫЧИСЛЕНИЯ , но вопрос в другом: Как заставить работать модуль? то есть, я конечно могу убрать переменную “__name__”, (if __name__='__main__'): )отделяющий исполнение модуля от импортирование, тогда импортируя модуль, программа выполнит вычисления, но мне нужно по заданию отделить импортирование модуля от исполнения, и, что бы я мог вызвать исполнение функции, когда потребуется, не импортируя сам модуль повторно. Вот это мне нужно знать, как вызвать исполнение функции?
s = 0 пропиши после import math и заработаету тебя идет функция от s, а s ничему не равно
Прикреплённый файлы:
Снимок.PNG (363,3 KБ)
Офлайн
xam1816удалил ненужный параметр s в func(s), он никаким образом не влиял на работу кода. Как видно на скриншорте функция работает исправно и вычисляет периметр и затем площать как надо, ТАМ Я ВЫДЕЛИЛ И УКАЗАЛ ПОСЛЕДОВАТЕЛЬНОСТЬ ВЫЧИСЛЕНИЯ , но вопрос в другом: Как заставить работать модуль? то есть, я конечно могу убрать переменную “__name__”, (if __name__='__main__'): )отделяющий исполнение модуля от импортирование, тогда импортируя модуль, программа выполнит вычисления, но мне нужно по заданию отделить импортирование модуля от исполнения, и, что бы я мог вызвать исполнение функции, когда потребуется, не импортируя сам модуль повторно. Вот это мне нужно знать, как вызвать исполнение функции?
Прикреплённый файлы:
Снимок.PNG (363,3 KБ)
Офлайн
py.user.nextЭто вообще не то, что нужно.
Офлайн
Novichok_v_programmirovanii
Это вообще не то, что нужно.
def triangle_area(a, b, c): p = (a + b + c) / 2 return (p * (p - a) * (p - b) * (p - c)) ** 0.5
Novichok_v_programmirovanii
Реализовать вычисление площади в виде функции, на вход которой подаются
три числа, на выходе – площадь.
s = triangle_area(5,5,5) print(s)
10.825317547305483 Process finished with exit code 0
Отредактировано xam1816 (Окт. 30, 2021 16:09:54)
Офлайн