Библиотека knigago >> Компьютеры и Интернет >> Учебники и самоучители по компьютеру >> Программирование для «нормальных» с нуля на языке Python


СЛУЧАЙНЫЙ КОММЕНТАРИЙ

# 1354, книга: Big data простым языком
автор: Алексей Благирев

"Большие данные простым языком" Алексея Благирева - это отличная книга для тех, кто хочет получить представление о мире больших данных. Книга написана ясным и доступным языком и не требует предварительных знаний в области компьютерных наук или статистики. Благирев начинает с объяснения основных понятий больших данных и быстро переходит к обсуждению различных технологий, используемых для обработки и анализа больших данных. Он охватывает темы от баз данных до машинного обучения и...

СЛУЧАЙНАЯ КНИГА

М. В. Сысоева - Программирование для «нормальных» с нуля на языке Python

Часть 2 Программирование для «нормальных» с нуля на языке Python
Книга - Программирование для «нормальных» с нуля на языке Python.  М. В. Сысоева  - прочитать полностью в библиотеке КнигаГо
Название:
Программирование для «нормальных» с нуля на языке Python
М. В. Сысоева

Жанр:

Учебники и самоучители по компьютеру

Изадано в серии:

неизвестно

Издательство:

неизвестно

Год издания:

-

ISBN:

неизвестно

Отзывы:

Комментировать

Рейтинг:

Поделись книгой с друзьями!

Помощь сайту: донат на оплату сервера

Краткое содержание книги "Программирование для «нормальных» с нуля на языке Python"


Читаем онлайн "Программирование для «нормальных» с нуля на языке Python". [Страница - 3]

преподаватель факультета ВМК Московского Государственного Университета им. М. В. Ломоносова, автор курсов по 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 нет. Просто те
функции, в которых возвращаемое значение --">

Оставить комментарий:


Ваш e-mail является приватным и не будет опубликован в комментарии.