Занятие №6:
Функции


Определение
Функции - программные структуры, обеспечивающие многократное использование программного кода и уменьшающие его избыточность.
Короче: Функция – это средство, позволяющее группировать наборы инструкций так, что в программе они могут запускаться неоднократно.
Создание функции
'''
def name_func(arg1, arg2, ..., argN): # Заголовок функции
<интсрукция_1>
<интсрукция_2>
<интсрукция_3> # Тело функции
....
<интсрукция_n>
return <значение> # Возврат результата
'''
def mult_func(a):
x = 3 * a
return x
def print_func(a):
print(a)Вызов функции
from lec_4_create_function import mult_func
from lec_4_create_function import print_func
tmp = mult_func(4)
print(tmp)
print(mult_func(10))
print(mult_func('Good'))
print_func('Hello')
print_func(mult_func('50'))12
30
GoodGoodGood
Hello
505050Области видимости
x0 = 10 # Переменная в глобальной области видимости
def move(t):
x = x0 * t
return x
print(move(3))
print(x)
a = 'Good'
def my_func():
a = 'Bad'
print(a)
my_func()
print(a)30
NameError: name 'x' is not defined
Bad
GoodТипы данных
Изменяемые данные (mutable)
Числовые данные (int, float, complex)
Символьные строки (str)
Кортежи (tuple)
Неизменяемые данные (unmutable)
Списки (list)
Множества (set)
Словари (dict)
Типы данных
def changer(a, b):
a = 2
b[0] = 'Good'
x = 10
L = [1, 2]
changer(x, L)
print(x)
print(L)
L = [1, 2]
changer(x, L[:])
print(L10
['Good', 2]
[1, 2]Типы данных
# Coplex numbers
x = 3
y = 4
z = complex(x,y)
print(z)
w = complex(y, x)
print(z + w)
# Strings
s = 'hello'
print(s[0])
s[0] = 'H'(3+4j)
(7+7j)
h
TypeError: 'str' object does not
support item assignment# Tuple
t = (1, 4, 9)
print(t)
print(t[0])
t[0] = 3
# list
l = [1, 4, 9]
l[0] = 3
print(l)
# Dict
d = {'a1': 4, 4: 'a1', 'str': 'Hello'}
print(d['a1'])
print(d[4])
print(d['str'])
d['str'] = 'Good'
print(d)(1, 4, 9)
1
TypeError: 'tuple' object does not
support item assignment
[3, 4, 9]
4
a1
Hello
{'a1': 4, 4: 'a1', 'str': 'Good'}Аргументы
def my_func(a, b):
x = 3 * a - b
return x
tmp = my_func()
def my_func(a=1, b=0):
x = 3 * a - b
return x
print(my_func())
print(my_func(3, 4))
print(my_func(3))
print(my_func(b=3))
print(my_func(b=3, a=9))TypeError: my_func() missing
2 required positional
arguments: 'a' and 'b'
3
5
9
0
24Аргументы
def my_func(a, b=0):
x = 3 * a - b
return x
# Так НЕЛЬЗЯ!
# def my_func(a=0, b):
# x = 3 * a - b
# return x
def my_func(*args):
x = 3 * args[0] - args[1]
return x
print(my_func(3, 4))
print(my_func(3, 4, 8))5
5Аргументы
def my_func(**kwrgs):
x = 3 * kwrgs['obj_1'] - kwrgs['obj_2']
return x
print(my_func(obj_1=3, obj_2=4))
print(my_func(obj_1=3, obj_2=4, obj_3=8))5
5Возврат нескольких значений
def my_func(a, b):
x1 = 3*a - 2*b
x2 = 5*b - 4*a
return x1, x2
tmp = my_func(3, 2)
print(tmp)
print(tmp[0])
print(tmp[1])
print(my_func(3, 2)[1])(5, -2)
5
-2
-2Описание функции
def crutoi_chuvak(a=1, b=1, c=1):
''' Мотивирующая функция, возвращаюая всегда значение
"Крутой чувак", независимо от того какие аргументы
Вы в нее запихали
'''
a = 'Pofig'
b = 'Pofig'
print('Крутой чувак')
crutoi_chuvak()
help(crutoi_chuvak)Крутой чувак
Help on function crutoi_chuvak
in module __main__:
crutoi_chuvak(a=1, b=1, c=1)
Мотивирующая функция, в
озвращаюая всегда значение
"Крутой чувак", независимо
от того какие аргументы
Вы в нее запихали
Спасибо за понимание!
Лекция №6. Функции
By Protectornaldo
Лекция №6. Функции
- 75