Занятие №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(L
10
['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