М. В. Сысоева - Программирование для «нормальных» с нуля на языке Python
Часть 2Название: | Программирование для «нормальных» с нуля на языке Python | |
Автор: | М. В. Сысоева | |
Жанр: | Учебники и самоучители по компьютеру | |
Изадано в серии: | неизвестно | |
Издательство: | неизвестно | |
Год издания: | - | |
ISBN: | неизвестно | |
Отзывы: | Комментировать | |
Рейтинг: | ||
Поделись книгой с друзьями! Помощь сайту: донат на оплату сервера |
Краткое содержание книги "Программирование для «нормальных» с нуля на языке Python"
Читаем онлайн "Программирование для «нормальных» с нуля на языке Python". [Страница - 3]
- 1
- 2
- 3
- 4
- 5
- . . .
- последняя (57) »
преподаватель факультета ВМК Московского Государственного Университета им. М. В. Ломоносова, автор курсов по Python для ВУЗов и Вечерней математической Школы, разработчик
компании «Базальт СПО».
Глава 8
Функции
8.1
Функции в программировании
Функции в программировании можно представить как изолированный блок
кода, обращение к которому в процессе выполнения программы может быть многократным. Зачем нужны такие блоки инструкций? В первую очередь, чтобы сократить объем исходного кода: рационально вынести часто повторяющиеся выражения в отдельный блок и затем по мере надобности обращаться к нему.
Для того, чтобы в полной мере осознать необходимость использования функций, приведём сложный, но чрезвычайно полезный пример вычисления корня
нелинейного уравнению с помощью метода деления отрезка пополам.
Пусть на интервале [𝑎; 𝑏] имеется ровно 1 корень уравнения 𝑓 (𝑥) = 0. Значит,
𝑓 (𝑎) и 𝑓 (𝑏) имеют разные знаки. Используем этот факт. Найдём 𝑓 (𝑐), где 𝑐 = 𝑎+𝑏
2 .
Если 𝑓 (𝑐) того же знака, что и 𝑓 (𝑎), значит корень расположен между 𝑐 и 𝑏, иначе
— между 𝑎 и 𝑐.
Пусть теперь начало нового интервала (будь то 𝑎 или 𝑐 в зависимости от того,
где находится корень) обозначается 𝑎1 (что означает после первой итерации), а
конец, соответственно, 𝑏1 . Исходные начало и конец также будем обозначать 𝑎0
и 𝑏0 для общности. В результате нам удасться снизить неопределённость того,
где находится корень, в два раза.
Такой процесс можно повторять сколько угодно раз (при расчёте на компьютере столько, сколько позволяет точность представления данных ЭВМ), последовательно заужая интервал, в котором находится корень. Обычно процесс заканчивают по достижении на 𝑛-ой итерации интервалом [𝑎𝑛 ; 𝑏𝑛 ] величины менее
некоторого заранее заданного 𝜀.
Итак, напишем программу для вычисления корня нелинейного уравнения
𝑓 (𝑥) = 𝑥2 − 4:
from math import *
a = -10
b = 10
8
Глава 8. Функции
f(x)
f(b)
f(c)
a
c
b
x
f(a)
Рис. 8.1. Иллюстрация к методу деления отрезка пополам.
while (b - a ) > 10**( -10):
c =
f_a
f_b
f_c
( a + b )/2
= a **2 -4
= b **2 -4
= c **2 -4
if f_a * f_c > 0:
a = c
else :
b = c
print (( a + b )/2)
Если мы захотим вычислить корень другой нелинейной функции, например,
𝑓 (𝑥) = 𝑥2 + 4𝑥 + 4, то придётся переделывать выражения сразу в трёх строчках. Кажется логичным выделить наше нелинейное уравнение в отдельный блок
программы. Перепишем программу с помощью функции:
from math import *
def funkcija ( x ):
f = x **2+4* x +4
return f
a = -10
b = 10
while (b - a ) > 10**( -10):
c = ( a + b )/2
f_a = funkcija ( a )
8.1. Функции в программировании
9
f_b = funkcija ( b )
f_c = funkcija ( c )
if f_a * f_c > 0:
a = c
else :
b = c
print (( a + b )/2)
Программный код подпрограммы описывается единожды перед телом основной программы, затем из основной программы можно им пользоваться многократно. Обращение к этому программному коду из тела основной программы
осуществляется по его имени (имени подпрограммы).
Инструкция def — это команда языка программирования Python, позволяющая создавать функцию; funkcija — это имя функции, которое (так же как
и имена переменных) может быть почти любым, но желательно осмысленным.
После в скобках перечисляются параметры функции. Если их нет, то скобки
остаются пустыми. Далее идет двоеточие, обозначающее окончание заголовка
функции (аналогично с условиями и циклами). После заголовка с новой строки
и с отступом следуют выражения тела функции. В конце тела функции обычно присутствует инструкция return, после которой идёт значение или выражение, являющееся результатом работы функции. Именно оно будет подставлено
в главной (вызывающей) программе на место функции. Принято говорить, что
функция «возвращает значение», в данном случае — результат вычисления выражения 𝑥2 + 4𝑥 + 4 в конкретной точке 𝑥. В других языках программирования
такая инструкция называется также функцией, а инструкция, которая ничего
не возвращает, а только производит какие-то действия, называется процедурой1 , например:
def procedura ( x ):
f = x **2+4* x +4
print ( f )
Те же самые инструкции можно переписать в виде функции Bisection, которой передаются данные из основной программы, и которая возвращается корень
уравнения с заданной точностью:
from math import *
def function ( x ):
f = x **2 -4
return f
def Bisection (a , b , e ):
1 На самом деле никакого разделения на функции и процедуры в Python нет. Просто те
функции, в которых возвращаемое значение --">
компании «Базальт СПО».
Глава 8
Функции
8.1
Функции в программировании
Функции в программировании можно представить как изолированный блок
кода, обращение к которому в процессе выполнения программы может быть многократным. Зачем нужны такие блоки инструкций? В первую очередь, чтобы сократить объем исходного кода: рационально вынести часто повторяющиеся выражения в отдельный блок и затем по мере надобности обращаться к нему.
Для того, чтобы в полной мере осознать необходимость использования функций, приведём сложный, но чрезвычайно полезный пример вычисления корня
нелинейного уравнению с помощью метода деления отрезка пополам.
Пусть на интервале [𝑎; 𝑏] имеется ровно 1 корень уравнения 𝑓 (𝑥) = 0. Значит,
𝑓 (𝑎) и 𝑓 (𝑏) имеют разные знаки. Используем этот факт. Найдём 𝑓 (𝑐), где 𝑐 = 𝑎+𝑏
2 .
Если 𝑓 (𝑐) того же знака, что и 𝑓 (𝑎), значит корень расположен между 𝑐 и 𝑏, иначе
— между 𝑎 и 𝑐.
Пусть теперь начало нового интервала (будь то 𝑎 или 𝑐 в зависимости от того,
где находится корень) обозначается 𝑎1 (что означает после первой итерации), а
конец, соответственно, 𝑏1 . Исходные начало и конец также будем обозначать 𝑎0
и 𝑏0 для общности. В результате нам удасться снизить неопределённость того,
где находится корень, в два раза.
Такой процесс можно повторять сколько угодно раз (при расчёте на компьютере столько, сколько позволяет точность представления данных ЭВМ), последовательно заужая интервал, в котором находится корень. Обычно процесс заканчивают по достижении на 𝑛-ой итерации интервалом [𝑎𝑛 ; 𝑏𝑛 ] величины менее
некоторого заранее заданного 𝜀.
Итак, напишем программу для вычисления корня нелинейного уравнения
𝑓 (𝑥) = 𝑥2 − 4:
from math import *
a = -10
b = 10
8
Глава 8. Функции
f(x)
f(b)
f(c)
a
c
b
x
f(a)
Рис. 8.1. Иллюстрация к методу деления отрезка пополам.
while (b - a ) > 10**( -10):
c =
f_a
f_b
f_c
( a + b )/2
= a **2 -4
= b **2 -4
= c **2 -4
if f_a * f_c > 0:
a = c
else :
b = c
print (( a + b )/2)
Если мы захотим вычислить корень другой нелинейной функции, например,
𝑓 (𝑥) = 𝑥2 + 4𝑥 + 4, то придётся переделывать выражения сразу в трёх строчках. Кажется логичным выделить наше нелинейное уравнение в отдельный блок
программы. Перепишем программу с помощью функции:
from math import *
def funkcija ( x ):
f = x **2+4* x +4
return f
a = -10
b = 10
while (b - a ) > 10**( -10):
c = ( a + b )/2
f_a = funkcija ( a )
8.1. Функции в программировании
9
f_b = funkcija ( b )
f_c = funkcija ( c )
if f_a * f_c > 0:
a = c
else :
b = c
print (( a + b )/2)
Программный код подпрограммы описывается единожды перед телом основной программы, затем из основной программы можно им пользоваться многократно. Обращение к этому программному коду из тела основной программы
осуществляется по его имени (имени подпрограммы).
Инструкция def — это команда языка программирования Python, позволяющая создавать функцию; funkcija — это имя функции, которое (так же как
и имена переменных) может быть почти любым, но желательно осмысленным.
После в скобках перечисляются параметры функции. Если их нет, то скобки
остаются пустыми. Далее идет двоеточие, обозначающее окончание заголовка
функции (аналогично с условиями и циклами). После заголовка с новой строки
и с отступом следуют выражения тела функции. В конце тела функции обычно присутствует инструкция return, после которой идёт значение или выражение, являющееся результатом работы функции. Именно оно будет подставлено
в главной (вызывающей) программе на место функции. Принято говорить, что
функция «возвращает значение», в данном случае — результат вычисления выражения 𝑥2 + 4𝑥 + 4 в конкретной точке 𝑥. В других языках программирования
такая инструкция называется также функцией, а инструкция, которая ничего
не возвращает, а только производит какие-то действия, называется процедурой1 , например:
def procedura ( x ):
f = x **2+4* x +4
print ( f )
Те же самые инструкции можно переписать в виде функции Bisection, которой передаются данные из основной программы, и которая возвращается корень
уравнения с заданной точностью:
from math import *
def function ( x ):
f = x **2 -4
return f
def Bisection (a , b , e ):
1 На самом деле никакого разделения на функции и процедуры в Python нет. Просто те
функции, в которых возвращаемое значение --">
- 1
- 2
- 3
- 4
- 5
- . . .
- последняя (57) »
Книги схожие с «Программирование для «нормальных» с нуля на языке Python» по жанру, серии, автору или названию:
А. И. Широков, М. О. Пышняк - Информатика. Разработка программ на языке Питон. Базовые языковые конструкции Жанр: Python Год издания: 2020 |
Юлиц Васильев - Обработка естественного языка. Python и spaCy на практике Жанр: Учебники и самоучители по компьютеру Серия: Библиотека программиста |