GoloshchapovDY 1 неделю назад
Родитель ce36ec1458 e555e5cc3f
Сommit d256a94a07

@ -7,7 +7,7 @@
Запуск оболочки IDLE и установка рабочего каталога
>>>import os
>>>os.chdir('C:\\Users\\Дмитрий\\OneDrive\\Рабочий стол\\Goloshchapov\\python-labs\\TEMA6')
>>>os.chdir('C:\\Users\\Дмитрий\\OneDrive\\Рабочий стол\\Goloshchapov\\python-labs\\TEMA7')
Пользовательская функция – это совокупность инструкций, которая выполняется при обращении к функции из любого места программы. Аргументы функции – это ссылки на объекты-источники данных, которые используются при её выполнении. Возвращаемые данные – это результаты вычисления функции, передаваемые в ту часть программы, из которой была вызвана функция.
@ -201,12 +201,6 @@ help вывело справку по функции uspeh в модуле main.
Программа выводит сообщение "Функция 2", потому что переменная typ_fun не равна 1, и
выполняется блок else, в котором функция func определена как выводящая "Функция 2".
>>> tup_fun=1
>>> func()
Функция 2
Сначала у нас выполнялась ветка else, создаётся функция func и вывелось "Функция 2". Эта функция сохранилась в памяти. Потом мы изменили значение typ_fun. Но здесь уже код с if-else не выполняется, функция func остаёся прежней.
# 4. Аргументы функции
## 4.1 Возможность использования функции в качестве аргумента другой функции

@ -0,0 +1,55 @@
# Выполнение индивидуального контрольного задания по теме 7
Голощапов Д.Е.,А-01-23
# Задание
Разработайте анонимную функцию с 3 аргументами: х, a, b, вычисляющую значение exp(-(x-a)2/b)/(2*π*b)1/2. Рассчитайте значения функции в диапазоне значений х от a-3*b1/2 до a+3*b1/2 с шагом 0.2*b1/2 и запишите эти значения в текстовый файл по два значения на строке, разделенных запятыми.
# Решение
>>> import os
>>> os.chdir('C:\\Users\\u115-07\\Desktop\\python-labs\\TEMA7')
>>> normal= lambda x, a, b: math.exp(-(x-a)**2/b) / math.sqrt(2 * math.pi * b)
>>> def test_normal():
... a, b = 0, 1
... std_dev = math.sqrt(b)
... start = a - 3 * std_dev
... end = a + 3 * std_dev
... step = 0.2 * std_dev
... x_values = []
... current = start
... while current <= end:
... x_values.append(current)
... current += step
... function_values = []
... for x in x_values:
... y = normal_pdf(x, a, b)
... function_values.append(y)
... file = open('ikz.txt', 'w')
... for i in range(0, len(function_values), 2):
... if i + 1 < len(function_values):
... file.write(str(function_values[i])+','+str(function_values[i+1])+'\n')
... else:
... file.write(str(function_values[i])+',0\n')
...
...
>>> test_normal()
4.9233388666234e-05,0.0001570512248023814
0.00046246553014536756,0.0012571116468828324
0.0031544581746000837,0.007306882745280797
0.015624133620192436,0.03084012943829092
0.05619437965598666,0.09452050033904612
0.14676266317374007,0.21035924208613316
0.2783325845048708,0.33995618640009767
0.3832995298410415,0.3989422804014327
0.3832995298410414,0.33995618640009745
0.27833258450487053,0.21035924208613285
0.1467626631737398,0.09452050033904591
0.056194379655986504,0.030840129438290835
0.01562413362019238,0.007306882745280764
0.0031544581746000672,0.0012571116468828236
0.0004624655301453643,0.00015705122480238025
Загрузка…
Отмена
Сохранить