Функции
Функции - программные структуры, обеспечивающие многократное использование программного кода и уменьшающие его избыточность.
Короче: Функция – это средство, позволяющее группировать наборы инструкций так, что в программе они могут запускаться неоднократно.
'''
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
505050x0 = 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
24def 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
5def 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
5def 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
-2def 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)
Мотивирующая функция, в
озвращаюая всегда значение
"Крутой чувак", независимо
от того какие аргументы
Вы в нее запихали