Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методички / 2. Функции. Теория

.pdf
Скачиваний:
0
Добавлен:
08.03.2025
Размер:
233.25 Кб
Скачать

Занятие 2. Функции.

Функция – это составная инструкция, которая позволяет принимать данные, выполнять указания или действия и возвращать данные ввода. Функции используются для вычислений и выполнения различных операций, но главный плюс – это многократное выполнение кода.

Например, у нас есть математическая функция f(x) = 3*x +1

Имя функции f(x), которая принимает в себя какие-то исходные данные и затем выполняет с ними действия. В питоне все выглядит похоже: есть имя функции, исходные данные, которые принимает эта функция и указания операций с этими данными.

Синтаксис функций

def имя_функции (параметры):

тело_функции (какое-либо действие)

Задание 2-1:

def hello ():

print (‘Привет, мир!’)

Мы объявили (создали) функцию, дали ей указания, но мы ее еще не вызвали. Для этого нужно указать в теле программы ее имя и параметры, которые мы ей передаем.

def hello ():

print (‘Привет, мир!’)

hello ()

Как говорилось ранее, функции могут вызываться многократно в процессе написания программы, например

def hello ():

print (‘Привет, мир!’)

hello ()

hello ()

hello ()

hello ()

Сейчас функция вызывается 4 раза.

Теперь попробуем использовать функцию для работы с данными. Мы должны научиться пользоваться функциями, чтобы они принимали данные, проводили с ними какие-то операции и выдавали результат.

Задание 2-2. Пользователь вводит 2 целых числа, нужно написать функцию, которая выводит разность этих двух чисел.

def diff(a,b): # объявляем функцию diff (разность) с параметрами а и b, называем их отличными от х и у буквами, чтобы они потом не сталкивались.

return a - b # функция должна выдать результат, т.е. вернуть какое-либо значение, для этого используется оператор return

х = int(input (“Введите 1 число: ”))

у = int(input (“Введите 2 число: ”))

diff(х,у) # вызываем функцию

Но результат не выводится. В чем ошибка? Программа просто запомнила результат, но не распечатала (не вывела на экран). Добавляем print к вызову функции или оператор return.

print(diff(х,у))

Можно пойти другим путем и ввести еще одну переменную, например, z.

def diff(a,b):

return a-b

x= int(input("Введите 1 число:"))

y= int(input("Введите 2 число:"))

z= diff (x,y)

print (z)

Задание 2-3, для самостоятельной работы. Пользователь вводит 2 дробных числа, нужно написать функцию, которая выводит сумму этих двух чисел.

Пример 2. математическая функция f(x) = 3*x +1

У нас есть функция с именем f, которая принимает параметр a (какое-либо число)

def f(a):

return 3*a+1

print (f(5))

Функции в Python могут принимать параметры двух типов: обязательные и необязательные. В нашем примере а – обязательный параметр, т.е. пользователь обязательно должен указать значение а, если этого не сделать программа выдаст ошибку.

Необязательные параметры можно задать сразу оператором присваивания = (по умолчанию). Например:

def f(a=5):

return 3*a+1

print (f())

Это значит, если пользователь ничего не укажет, то программа автоматически посчитает а=5

def f(a=5):

return 3*a+1

print (f(4))

Если указать обязательный параметр при вызове функции, например, 4, то программа подставит в функцию его.

Область видимости переменных

Это часть программы, в пределах которой идентификатор, объявленный как имя некоторой переменной или функции, остаётся связанным с ним, то есть позволяет посредством себя обратиться к ней. Говорят, что идентификатор объекта «виден» в определённом месте программы, если в данном месте по нему можно обратиться к данному объекту. За пределами области видимости тот же самый идентификатор может быть связан с другой переменной или функцией, либо быть свободным (не связанным ни с какой из них).

Иными словами, правила добавления переменных в программу так, чтобы потом можно было их найти и получить их значение, должны определяться четкими границами.

Пример. Мы задаем некоторые переменные a и b, затем вызываем функцию def f(a,b) от переменных a и b, которая просто выводит эти числа. Вызываем ее.

а=5

b=3

def f(a,b):

print (a)

print (b)

f (a,b)

В данном случае мы задали значения a и b заранее, программа выводит эти числа.

Теперь попробуем написать их в теле функции. Предположим, нам не нужно сейчас вызывать функцию, а нужно вызвать переменные, которые мы задали внутри функции.

def f(a,b):

а=5

b=3

print (a)

print (b)

print (a)

print (b)

У нас выдается ошибка, Python не знает, что это за переменные, так как мы их до этого не объявляли. Это значит, что a и b в данном случае будут локальными переменными, их будет видно только внутри функции. Если мы за пределами функции будем использовать эти переменные, Python их не видит.

Если a и b написаны вне функции, то они будут являться глобальными.

В данном случае, чтобы Python увидел переменные, их нужно сделать глобальными.

а=5

b=3

def f(a,b):

а=5

b=3

print (a)

print (b)

print (a)

print (b)

Если есть необходимость использовать и изменять глобальную переменную внутри функции, то необходимо использовать оператор global. Например, мы хотим использовать глобальную переменную а внутри функции.

а=5

b=3

def f():

global а

а=а+2

print (a)

f()

Т.е. при помощи оператора global мы взяли глобальную переменную а, изменили ее внутри функции и вывели ее на экран после изменений. Но стоит помнить, если мы в дальнейшем будем вызывать переменную а, то она будет вызываться измененной.

а=5

b=3

def f():

global а

а=а+2

print (a)

f()

print (a)

Подводя итог занятия:

Оператор return - используется в функциях для возвращения данных после выполнения работы самой функции

Оператор global - позволяет изменять изнутри функции значение глобальной переменной

Практическое задание 2-5. Составить функцию, которая принимает на вход массу тела (в килограммах) и рост (в метрах), и возвращает индекс массы тела.

Рабочая формула ИМТ = вес/(рост)^2

def bmi(a,b):

return a / b ** 2

weight = int(input ("Введите вес: ")) height = float(input ("Введите рост: ")) z = bmi (weight, height)

print ("Индекс массы тела =", z)

Теперь введем условия: ИМТ меньше 18,5 – недостаточная масса тела, 18,5-25 – нормальная масса тела, 25-30 – избыточная масса тела, больше 30 – ожирение.

def bmi(a,b):

return a / b ** 2

weight = int(input ("Введите вес: ")) height = float(input ("Введите рост: ")) z = bmi (weight, height)

if z < 18.5:

description = "недостаточная масса тела" elif z < 25:

description = "нормальная масса тела" elif z < 30:

description = "избыточная масса тела"

else:

description = "ожирение" print("bmi=", z, description)

Задание 2-6, для самостоятельной работы. Рассчитать ЧСС по формуле ЧСС = 60/(R-R). Ввести условия: от 60 до 90 в минуту - норма. более 90 в минуту - тахикардия, менее 60 в минуту – брадикардия. Где R-R (длительность интервала, секунд) - одно не целое число (параметр функции).

Информативно (значения показателей):

Длительность

ЧСС в минуту

 

Длительность

ЧСС в минуту

интервала R-R, с

 

 

интервала R-R, с

 

 

 

 

 

 

1,50

40

 

0,85

70

1,40

43

 

0,80

75

1,30

46

 

0,75

80

1,25

48

 

0,70

86

1,20

50

 

0,65

82

1,15

52

 

0,60

100

1,10

54

 

0,55

109

1,05

57

 

0,50

120

1,00

60

 

0,45

133

0,95

63

 

0,40

150

0,90

66

 

0,35

172