Technical Flashcards
В чем разница между списком и кортежем?
1) Список можно изменить после создания.
2) Кортеж нельзя изменить после создания.
3) Список упорядочен. Он представляет собой упорядоченные последовательности объектов, как правило, одного и того же типа. Например, все имена пользователей упорядочены по дате создания: [«Seth», «Ema», «Eli»].
4) У кортежа есть структура. В каждом индексе могут сосуществовать различные типы данных. Например, такая запись базы данных в памяти: (2, «Ema», «2020–04–16») # id, name, created_at.
Как выполняется интерполяция строк?
интерполяция - подстановка
name = ‘Chris’
- f strings
print(f’Hello {name}’) - % operator
print(‘Hey %s %s’ % (name, name)) - format
print(
“My name is {}”.format((name))
)
В чем разница между “is” и “==”?
is проверяет идентичность (ссылается на тот же объект), а == проверяет равенство (одинаковость).
Что такое декоратор?
Декоратор позволяет добавить новую функциональность к существующей функции. Например, замеряет время работы функции или выводит логи
Объясните функцию range
Range генерирует список целых чисел. Ее можно использовать тремя способами.
range(stop): генерирует целые числа от 0 до целого числа stop:
range(start, stop): генерирует целые числа от start до stop
range(start, stop, step): генерирует целые числа от start до stop с интервалами step:
Определите класс car с двумя атрибутами: color и speed. Затем создайте экземпляр и верните speed
class Car :
def __init__(self, color, speed):
self.color = color
self.speed = speed
car = Car(‘red’,’100mph’)
car.speed
#=> ‘100mph’
В чем разница между методами экземпляра, класса и статическими методами в Python?
Методы экземпляра: принимают параметр self и относятся к определенному экземпляру класса.
Статические методы: используют декоратор @staticmethod, не связаны с конкретным экземпляром и являются автономными (атрибуты класса или экземпляра не изменяются).
Методы класса: принимают параметр cls, можно изменить сам класс.
В чем разница между func и func()?
func — это представляющий функцию объект, который можно назначить переменной или передать другой функции.
Функция func() с круглыми скобками вызывает функцию и возвращает результат.
Объясните, как работает функция map
Она возвращает объект (итератор), который перебирает значения, применяя функцию к каждому элементу.
def add_three(x):
return x + 3
li = [1,2,3]
list(map(add_three, li))
#=> [4, 5, 6]
Объясните, как работает функция reduce
reduce принимает функцию и последовательность — и проходит по этой последовательности. На каждой итерации в функцию передаются как текущий элемент, так и выходные данные предыдущего элемента. В конце концов, возвращается одно значение:
Объясните, как работает функция filter
Каждый элемент начальной последовательности передается функции, которая включает его в последовательность, если по условию получает True, и отбрасывает в случае False
Переменные в Python передаются по ссылке или по значению?
все имена передаются по ссылке, но в некоторых ячейках памяти хранятся объекты, а в других — указатели на другие ячейки памяти.
Как развернуть список?
.reverse() вызывается в списке и изменяет его
Как работает умножение строк?
Посмотрим результат умножения строки ‘cat’ на 3:
‘cat’ * 3
#=> ‘catcatcat’
В результате содержимое строки повторяется трижды.
Как работает умножение списка?
Посмотрим на результат умножения списка [1,2,3] на 2:
[1,2,3] * 2
#=> [1, 2, 3, 1, 2, 3]
Содержание списка [1,2,3] повторяется дважды.
Что означает self в классе?
Self ссылается на экземпляр класса. Так метод может обновлять объект, к которому принадлежит.
Ниже передача self в __init__() дает возможность установить цвет экземпляра при инициализации:
class Shirt:
def __init__(self, color):
self.color = color
s = Shirt(‘yellow’)
s.color
#=> ‘yellow’
Как объединить списки в Python?
Списки объединяются при сложении. Обратите внимание, что с массивами так не получается:
В чем разница между глубокой и мелкой копиями?
Для неизменяемых объектов глубокое и мелкое (поверхностное) копирование обычно не отличаются.
Мелкая копия создает новый объект, но заполняет его ссылками на оригинал.
copy.deepcopy(). Оригинал и копия полностью независимы, а изменения в одном не оказывают никакого влияния на другой:
В чем разница между списками и массивами?
Примечание: в стандартной библиотеке Python есть объект array, но здесь мы специально обсуждаем массив из популярной библиотеки Numpy.
Списки в каждом индексе можно заполнять разными типами данных. Массивы требуют однородных элементов.
Арифметические действия в списках добавляют или удаляют элементы из списка. Арифметические действия на массивах соответствуют функциям линейной алгебры.
Массивы используют меньше памяти и обладают значительно большей функциональностью.
Как объединить два массива?
Помните, что массивы — это не списки. Это библиотека Numpy и здесь работает линейная алгебра.
Для объединения массивов нужно использовать соответствующую функцию Numpy .concatenate:
import numpy as np
a = np.array([1,2,3])
b = np.array([4,5,6])
np.concatenate((a,b))
#=> array([1, 2, 3, 4, 5, 6])
Что вам нравится в Python?
Python очень удобочитаем, и есть так называемый «питоновский способ» решения почти любой задачи, то есть самый понятный, ясный и лаконичный код.