Ответы на вопросы с собеседований по Python
Что такое переменная?
Переменная в Python — это идентификатор ссылки на объект в памяти. На один и тот же объект в памяти могут указывать (ссылаться) несколько переменных. Как только на область памяти перестают ссылаться переменные, данная область очищается сборщиком мусора.
Какие типы данных есть в Python?
bool
- логический тип данных. True
или False
bytearray
- изменяемая последовательность байтов
bytes
- неизменяемая последовательность байтов
complex
- комплексные числа
dict
- словарь (похож на ассоциативный массив в PHP)
ellipsis
- используется для получения среза (определяется или ключевым словом Ellipsis
или тремя точками)
float
- вещественные числа
frozenset
- неизменяемое множество
function
- функция
int
- целые числа (размер числа ограничен объемом доступной оперативной памяти)
list
- список (аналогичен массивам в других языках программирования)
module
- модуль
NoneType
- пустой объект, объект без значения (точнее со значением None
, что в других языках соответствует null
)
set
- множество (набор уникальных объектов)
str
- unicode-строка
tuple
- кортеж
type
- типы и классы данных
Узнать тип данных можно с помощью функции type()
Осваиваем Python. Унция 1. Типы данных.
Типы данных наносят ответный удар
Расскажите про изменяемые и неизменяемые типы данных
Все типы данных в Python можно разделить на изменяемые и неизменяемые. Неизменяемость означает, что состояние нельзя изменить после создания. К неизменяемым типам данных относятся числа, строки, кортежи и байты (bytes). К изменяемым относятся списки, словари и массив байтов (bytearray).
Что вы знаете о строках?
a = "hello"
id(a) # 2044344987401
a = "hello world"
id(a) # 2044334957804
Cтрока – это упорядоченная последовательность символов, которая предназначена для хранения информации в виде простого текста.
В Python3 строка по умолчнанию имеет кодировку Unicode, что избавляет от проблем работы и отображения символов кирилицы и прочих экзотических кодировок. Строка это неизменяемый тип данных, т.е. если нужно добавить символов в существующую строку, придется создать новую строку, с новым адресом в памяти.
41 вопрос о работе со строками в Python
Основы Python — кратко. Строки.
Какие есть числовые типы?
int
- целые числа.
float
- вещественные или действительные числа(числа с плавающей точкой).
complex
- комплексные числа.
Также есть модуль decimal
, используемый для выполнения операций повышенной точности.
Есть еще и модуль fractions
, обеспечивающий поддержку рациональных чисел и использующийся для осуществления математических операций с дробями.
3 особенности чисел в Python, о которых вы, возможно, не знали
Что в Python не является объектом?
В Python всё является объектом, кроме ключевых слов: in
, is
, if
, while
, и т. д.
Заметки об объектной системе языка Python ч.1
Разница между списком и кортежем?
1. Список можно изменить после создания. 2. Кортеж нельзя изменить после создания. 3. Список упорядочен. Он представляет собой упорядоченные последовательности объектов, как правило, одного и того же типа. Например, все имена пользователей упорядочены по дате создания: ["Seth", "Ema", "Eli"]. 4. У кортежа есть структура. В каждом индексе могут сосуществовать различные типы данных. Например, такая запись базы данных в памяти: (2, "Ema", "2020–04–16") # id, name, created_at. Основы Python — кратко. Часть 3. Списки, кортежи, файлы.
Как удалить из списка дубликаты?
a = [1,1,1,2,3]
a = list(set(a))
print(a)
#=> [1, 2, 3]
Это можно сделать путем преобразования списка в множество, а затем обратно в список. Обратите внимание, что множества не обязательно поддерживают порядок следования списка.
Разница между append и extend?
a = [1,2,3]
b = [1,2,3]
a.append(6)
print(a)
#=> [1, 2, 3, 6]
b.extend([4,5])
print(b)
#=> [1, 2, 3, 4, 5]
append
добавляет значения в список, а extend
добавляет в список значения из другого списка.
Как проверить, существует ли значение в списке?
Используйте in
:
'a' in ['a','b','c']
#=> True
'a' in [1,2,3]
#=> False
Что такое словари?
Словари в Python - коллекции произвольных объектов с доступом по ключу.
Начиная с Python3.6 словарь dict()
упорядочен, т.е. при переборе имеющегося словаря, элементы возвращаются в том порядке, в котором они были добавлены в словарь при его наполнении.
До Python3.6 приходилось использовать объект OrderedDict()
, чтобы иметь упорядоченную коллекцию, с доступам к элементам по ключам. Словарь это изменяемый тип данных. Количество пар "ключ-значение" ограничено объемом оперативной памяти.