Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 29, 2021 15:02:26

Novichok_v_programmirovanii
Зарегистрирован: 2021-10-29
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Памагите пожалуйста! Не могу понять код.

Всем привет!
Заранее извиняюсь, если вопрос покажется глупым, но я только начал изучать основы программирования на языке 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)

Офлайн

#2 Окт. 29, 2021 15:46:12

d-par
Зарегистрирован: 2021-10-24
Сообщения: 4
Репутация: +  1  -
Профиль   Отправить e-mail  

Памагите пожалуйста! Не могу понять код.

s = 0 пропиши после import math и заработает
у тебя идет функция от s, а s ничему не равно

Отредактировано d-par (Окт. 29, 2021 15:49:30)

Офлайн

#3 Окт. 29, 2021 17:27:44

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1353
Репутация: +  118  -
Профиль   Отправить e-mail  

Памагите пожалуйста! Не могу понять код.

Novichok_v_programmirovanii
Реализовать вычисление площади в виде функции, на вход которой подаются три числа
Скажите,что для вас значит функция,что это такое?расскажите так как вы понимаете

Офлайн

#4 Окт. 29, 2021 20:05:08

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9873
Репутация: +  853  -
Профиль   Отправить e-mail  

Памагите пожалуйста! Не могу понять код.

  
>>> 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
>>>



Офлайн

#5 Окт. 30, 2021 13:28:39

Novichok_v_programmirovanii
Зарегистрирован: 2021-10-29
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Памагите пожалуйста! Не могу понять код.

d-par
s = 0 пропиши после import math и заработаету тебя идет функция от s, а s ничему не равно
удалил ненужный параметр s в func(s), он никаким образом не влиял на работу кода. Как видно на скриншорте функция работает исправно и вычисляет периметр и затем площать как надо, ТАМ Я ВЫДЕЛИЛ И УКАЗАЛ ПОСЛЕДОВАТЕЛЬНОСТЬ ВЫЧИСЛЕНИЯ , но вопрос в другом: Как заставить работать модуль? то есть, я конечно могу убрать переменную “__name__”, (if __name__='__main__'): )отделяющий исполнение модуля от импортирование, тогда импортируя модуль, программа выполнит вычисления, но мне нужно по заданию отделить импортирование модуля от исполнения, и, что бы я мог вызвать исполнение функции, когда потребуется, не импортируя сам модуль повторно. Вот это мне нужно знать, как вызвать исполнение функции?

Прикреплённый файлы:
attachment Снимок.PNG (363,3 KБ)

Офлайн

#6 Окт. 30, 2021 13:29:29

Novichok_v_programmirovanii
Зарегистрирован: 2021-10-29
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Памагите пожалуйста! Не могу понять код.

xam1816
удалил ненужный параметр s в func(s), он никаким образом не влиял на работу кода. Как видно на скриншорте функция работает исправно и вычисляет периметр и затем площать как надо, ТАМ Я ВЫДЕЛИЛ И УКАЗАЛ ПОСЛЕДОВАТЕЛЬНОСТЬ ВЫЧИСЛЕНИЯ , но вопрос в другом: Как заставить работать модуль? то есть, я конечно могу убрать переменную “__name__”, (if __name__='__main__'): )отделяющий исполнение модуля от импортирование, тогда импортируя модуль, программа выполнит вычисления, но мне нужно по заданию отделить импортирование модуля от исполнения, и, что бы я мог вызвать исполнение функции, когда потребуется, не импортируя сам модуль повторно. Вот это мне нужно знать, как вызвать исполнение функции?

Прикреплённый файлы:
attachment Снимок.PNG (363,3 KБ)

Офлайн

#7 Окт. 30, 2021 13:30:20

Novichok_v_programmirovanii
Зарегистрирован: 2021-10-29
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Памагите пожалуйста! Не могу понять код.

py.user.next
Это вообще не то, что нужно.

Офлайн

#8 Окт. 30, 2021 16:09:25

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1353
Репутация: +  118  -
Профиль   Отправить e-mail  

Памагите пожалуйста! Не могу понять код.

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)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version