Основы Python. Составные типы данных. Функции. Область видимости переменных

Содержание

Слайд 2

Составные типы данных

Составные типы данных

Слайд 3

Составной = из нескольких частей

Составной = из нескольких частей

Слайд 4

Кортеж

Представляет собой набор неизменяемых значений
(1, 2)
(1, 2, 3)
('a', 'b', 'c', 'd', 'e',

Кортеж Представляет собой набор неизменяемых значений (1, 2) (1, 2, 3) ('a',
'f')

Слайд 5

Практика

Файл "types/tuples.py"

Практика Файл "types/tuples.py"

Слайд 6

Список

Представляет собой изменяемый набор значений
[1, 2, 1, 3]
[True, False]
['person', 'manager', 'student']

Список Представляет собой изменяемый набор значений [1, 2, 1, 3] [True, False] ['person', 'manager', 'student']

Слайд 7

Практика

Файл "types/lists.py"

Практика Файл "types/lists.py"

Слайд 8

Мы можем добавить новые
значения в список.
А в кортеж?

numbers = [1,

Мы можем добавить новые значения в список. А в кортеж? numbers =
2, 3]
numbers.append(4)
print(numbers) # [1, 2, 3, 4]

Слайд 9

В кортеж - нельзя ничего добавить!

В кортеж - нельзя ничего добавить!

Слайд 10

Можно ли изменить объект?

Если да, то он изменяемый
Если нет, то он неизменяемый

Можно ли изменить объект? Если да, то он изменяемый Если нет, то он неизменяемый

Слайд 11

Практика

Файл "tuple_vs_list.py"

Практика Файл "tuple_vs_list.py"

Слайд 12

Множество

Представляет собой изменяемый набор уникальных значений
{1, 2}
{'my', 'unique', 'words'}
{'a', False, None, 1}

Множество Представляет собой изменяемый набор уникальных значений {1, 2} {'my', 'unique', 'words'} {'a', False, None, 1}

Слайд 13

Практика

Файл "types/sets.py"

Практика Файл "types/sets.py"

Слайд 14

Словарь

Представляет собой набор пар {"ключ": "значение"}
{}
{'a': 1, 'b': 2, 'c': 3}
{'name': 'Ivan',

Словарь Представляет собой набор пар {"ключ": "значение"} {} {'a': 1, 'b': 2,
'age': 25, 'working': True}

Слайд 15

Практика

Файл "types/dicts.py"

Практика Файл "types/dicts.py"

Слайд 16

first = [1, 2]
second = first
first.append(3)
print(first) # [1, 2, 3]
print(second) # [1,

first = [1, 2] second = first first.append(3) print(first) # [1, 2,
2, 3]

Присваивание никогда не копирует данные

Слайд 17

Какова сложность операций?

https://wiki.python.org/moin/TimeComplexity

Какова сложность операций? https://wiki.python.org/moin/TimeComplexity

Слайд 18

Каждый тип данных хорош в чем-то своем

В tuple быстро брать значения по

Каждый тип данных хорош в чем-то своем В tuple быстро брать значения
индексу
В list быстро добавлять новое, брать значения по индексу
В set быстро искать значения, делать операции над множествами
В dict быстро брать значения по ключу, искать ключи, добавлять новые

Слайд 19

Промежуточные итоги
Неизменяемые типы (immutable):
Простые типы: int, float, complex, bool, str, None
Кортежи: tuple
Изменяемые

Промежуточные итоги Неизменяемые типы (immutable): Простые типы: int, float, complex, bool, str,
типы (mutable):
Списки: list
Множества: set
Словари: dict

Слайд 20

Функции

Функции

Слайд 21

Вызов функции

Уже знакомая для нас конструкция:
len('abc')
print('2 + 2 = ', 4)
input('How are

Вызов функции Уже знакомая для нас конструкция: len('abc') print('2 + 2 =
you?')

Слайд 22

Определение функции

Определение функции

Слайд 23

Определение функции

def sum_two_numbers(number1, number2):
...
Где:
def - ключевое слово для объявления функции
sum_two_numbers -

Определение функции def sum_two_numbers(number1, number2): ... Где: def - ключевое слово для
имя функции
number1, number2 - входные параметры

Слайд 24

Определение функции

def sum_two_numbers(input_var1, input_var2):
return input_var1 + input_var2
Где:
return - ключевое слово,

Определение функции def sum_two_numbers(input_var1, input_var2): return input_var1 + input_var2 Где: return -
чтобы вернуть значение
returns input_var1 + input_var2 - тело функции

Слайд 25

Определение и вызов функции неразрывно связаны!

Определение и вызов функции неразрывно связаны!

Слайд 26

Практика

Файл "functions/definition.py"

Практика Файл "functions/definition.py"

Слайд 27

Функция может принимать

Нулевое количество аргументов: print() #
Позиционные аргументы: print(1, 2) #

Функция может принимать Нулевое количество аргументов: print() # Позиционные аргументы: print(1, 2)
1 2
Именованные аргументы: print(1, 2, sep=',') # 1,2

Слайд 28

Функция может принимать

Любое количество позиционных аргументов: print(1, 2, 3, 4, 5, 6,

Функция может принимать Любое количество позиционных аргументов: print(1, 2, 3, 4, 5,
7, 8, 9, ...)
Любое количество именованных аргументов: dict(name='Ivan', age=25, working=True)

Слайд 29

Практика

Файл "functions/args_and_kwargs.py"

Практика Файл "functions/args_and_kwargs.py"

Слайд 30

Области видимости

Области видимости

Слайд 31

Области видимости

LANGUAGE_NAME = 'Python'
def print_language_name():
heart = '<3'
print('I am learning', LANGUAGE_NAME,

Области видимости LANGUAGE_NAME = 'Python' def print_language_name(): heart = ' print('I am
heart)
print(LANGUAGE_NAME, 'is cool!') # no heart ;(

Слайд 32

Области видимости нужны нам, чтобы прятать лишнее!

Области видимости нужны нам, чтобы прятать лишнее!

Слайд 33

Практика

Файл "scopes.py"

Практика Файл "scopes.py"