Zen of Python
20.1K subscribers
1.29K photos
179 videos
36 files
3.3K links
Полный Дзен Пайтона в одном канале

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels

Сайт: https://tprg.ru/site

Регистрация в перечне РКН: https://tprg.ru/xZOL
Download Telegram
Самые популярные вопросы на собеседовании: «В чем разница между списком и кортежем?»

С этого дня решил попробовать новую рубрику — вопросы с собеседований. В ней буду рассказывать о популярных вопросах и ответах на них. Такая минимальная посильная нагрузка, которая со временем поможет увереннее чувствовать себя в самый важный момент перед будущим тимлидом :)

И начнём с одного из самых простых, но самых частых вопросов с собеседований по Python/Data science. Его важно знать даже просто для себя.

Вот несколько отличительных черт кортежей и списков:
— Список можно изменить после создания. Кортеж — нельзя.
— Список упорядочен. Он представляет собой упорядоченные последовательности объектов часто одного и того же типа. Например, все имена пользователей упорядочены по дате создания: ["Seth", "Ema", "Eli"].
— У кортежа есть структура. В каждом индексе могут сосуществовать различные типы данных. Например, такая запись базы данных в памяти: (2, "Ema", "2020–04–16") # id, name, created_at.

#собеседование
👍62👎9
​Самые популярные вопросы на собеседовании: «Как выполняется обработка исключений в Python?»

Это база, но всё равно новички часто плавают в исключениях или используют их не в полной мере. Давайте разбираться, как делать это правильно.

Для обработки исключений Python предоставляет конструкцию из трех слов: try, except и finally.

Синтаксис выглядит примерно так:
try:
# пробуем это
except:
# если try не сработал, пробуем это
finally:
# в любом случае делаем это

Например, код:
try:
val = 1 + 'A'
except:
val = 10
finally:
print('complete')
print(val)

Выдаст:
#=> complete
#=> 10

Здесь блок try терпит неудачу, ведь мы не можем складывать целые числа со строками. Блок except устанавливает val = 10, а затем блок finally выводит complete.

#собеседование
🔥23👍11💩2
​​Самые популярные вопросы на собеседовании: «В чем разница между is и ==?»

Это вопрос с подвохом, и начинающие разработчики часто не видят разницы. И… привет, баги! Так что давайте разбираться, в чём же разница.

Если просто, то is проверяет идентичность, а == проверяет равенство. Чтобы лучше понять, создадим 2 списка, а переменной b присвоим значение списка a:
a = [1,2,3]
b = a
c = [1,2,3]

Если проверим равенство, то все объекты будут равны:
print(a == b) #=> True
print(a == c) #=> True

А вот если мы проверим их идентичность, то получается следующее:
print(a is b) #=> True
print(a is c) #=> False

Несмотря на одинаковое содержимое, сами списки представлены разными объектами в памяти, поэтому оператор is для одинаковых списков возвращает False. Проверить очень просто — у объектов будут разные идентификаторы:
print(id(a)) #=> 4369567560
print(id(b)) #=> 4369567560
print(id(c)) #=> 4369567624

Это всё, что нужно знать про is и == на базовом уровне. Но есть несколько лайфхаков и нюансов, которые помогут использовать эти операторы на полную катушку. О них расскажу чуть позже.

#собеседование
👍62🔥2🥰2💯2🐳1
​​Самые популярные вопросы на собеседовании: « В чем разница между remove, del и pop?»

Тип данных List в Python помогает сохранять разные типы данных в определенной связанной последовательности. И есть несколько методов для удаления элементов из списка. Вот в чём их основное различие:

1. remove() удаляет первое совпадающее значение:
li = ['a','b','c','d']
li.remove('b')
print(li)

#=> ['a', 'c', 'd']

2. del удаляет элемент по его индексу:
li = ['a','b','c','d']
del li[0]
print(li)

#=> ['b', 'c', 'd']

3. pop() удаляет элемент по индексу и возвращает этот элемент:
li = ['a','b','c','d']
print(li.pop(2))
print(li)

#=> 'c'
#=> ['a', 'b', 'd']

#собеседование
👍54