Когда кто-то готовится к собеседованию по кодированию, он может захотеть просмотреть Python. Поскольку программирование ограничено коротким периодом времени — 45 минут или меньше, элегантность языка Python может дать вам преимущество перед языками со строгой типизацией, такими как Java. В этой статье предполагается, что вы когда-то программировали Python; это обзор, а не знакомство. Давайте начнем.

Вы не можете ссылаться на имя, которое не установлено. Вы получаете NameError: имя «XYZ» не определено. Всегда присваивайте имени некоторое значение, прежде чем ссылаться на него.

Все типы являются классами. Важными типами являются int, float, str, list, dict. Функция type возвращает тип имени.

>>> type(1)
<class ‘int’>

Возвращаемый тип — это сам объект, и он всегда принадлежит какому-то классу.

>>> type(type(1))
<class ‘type’>

В Python все является объектом; это важная концепция, которую нужно помнить.

Вы должны хотя бы знать эти литералы объектов — True, False и None. Капитализация важна; имена всегда чувствительны к регистру.

Возможность добавлять комментарии важна; вам часто нужно прояснить некоторые моменты, добавив комментарии к вашему коду во время упражнения по написанию кода.

Символ «#» обозначает однострочные комментарии; это указывает, что остальная часть строки является комментарием. Строка документа используется для многострочных комментариев.

# This is single-line comment.
“””
This is the first line of a docstring.
This is the second line.
“””

Во время собеседования по кодированию двумя основными методами реализации являются возможность манипулировать массивами и записями.

Python использует список для реализации массива. Давайте рассмотрим несколько примеров, иллюстрирующих его особенности.

a1 = [] # set a1 to empty list
a1 = [10,11,12,13] # a1[0] is 10, a1[-1] is 13, and len(a1) is 4.

Списки всегда начинаются с нулевого индекса. Отрицательный индекс обозначает доступ к элементам с конца списка.

Доступ к элементу вне диапазона приводит к IndexError.

Многомерные массивы реализованы в виде вложенных списков.

a2 = [ [10,11,12], [20, 21, 22] ] # a2[0,0] is 10, a2[1,2] is 22, len(a2) is 2, and len(a2[0]) is 3.

Списки могут содержать разнородные типы; все идет.

a3 = [1, 1.2, ‘hello’, True, [1, 2, 3] ]

Некоторые упражнения по программированию могут потребовать от вас создания подсписков из списка. Python силен в этом отношении; Python называет эту функцию «срезом».

a4 = [0, 1, 2, 3, 4, 5]
a4[:] # [0, 1, 2, 3, 4, 5] ; whenever you see a colon, it is a slice.
a4 is a4[:] # False; "is" is an operator.
a4 == a4[:] # True

Оператор is проверяет, совпадают ли объекты. Созданный фрагмент имеет одинаковое значение, но это разные объекты; это важная концепция.

a4[:3] # [0,1,2]
a4[:-1] # [0,1,2,3,4]
a4[2,4] # [2,3]

Когда для функции или оператора требуются как начальный, так и конечный индексы, значение конечного индекса часто интерпретируется как до, но не включается.

Slice никогда не выдает ошибку; он всегда возвращает вам какое-то значение; вы можете считать это наилучшим подходом.

a4[0:200] # [0, 1, 2, 3, 4, 5]
a4[200:300] # []

Строки и списки похожи; многие концепции работают на обоих.

s1 =’012345' # s1[0] is’0', and len(s1) is 6.
s1[:3] #’012'

Однако строки и списки также различаются во многих областях. Строки содержат только символы. Строки неизменны; вы можете создавать новые строки, но не можете изменять существующие строки.

В упражнениях с кодом часто требуется перебирать массивы. Вам нужно понимать различные способы обхода списков.

Функция «диапазон» полезна при переборе списка; он возвращает диапазон объектов, который можно использовать вместе с оператором for.

>>> range(2)
range(0, 2)
>>> type(range(2))
<class ‘range’>
>>> len(range(10))
10
>>> list(range(2))
[0, 1]

Если вы преобразуете диапазон в список, вы можете лучше понять.

>>> range(1,6)
range(1, 6)
>>> list(range(1,6))
[1, 2, 3, 4, 5]
>>> s1 = [‘Sunday’, ‘Monday’, ‘Tuesday’, ‘Wednesday’, ‘Thursday’, ‘Friday’, ‘Saturday’]
>>> for i in range(1,6):
…       print(s1[i])
Monday
Tuesday
Wednesday
Thursday
Friday
>>>

Теперь давайте рассмотрим, как создать запись. Это может быть выполнено с помощью словаря или пользовательского класса.

И список, и словарь используют индекс для сопоставления индекса со значением. В словаре мы называем индекс ключом. В списке индекс должен быть целым числом. В словаре индекс может быть строкой.

d1 = {} # empty dictionary.
d1 = { 0: ‘Sunday’, 1: ‘Monday’, 2: ‘Tuesday’, 3: ‘Wednesday’, 4: ‘Thursday’, 5: ‘Friday’, 6: ‘Saturday’}
d1[2] # ’Tuesday’
d2 = {‘Sunday’: 0, ‘Monday’: 1, ‘Tuesday’: 2, ‘Wednesday’: 3, ‘Thursday’: 4, ‘Friday’: 5, ‘Saturday’: 6}
d2[‘Tuesday’] # 2

В словаре ключи всегда уникальны, но значения могут дублироваться.

Давайте создадим простой связанный список со словарем.

sunday = { ‘value’: ‘Sunday’, ‘next’: None } # record 1
monday = {‘value’: ‘Monday’, ‘next’: None } # record 2
sunday[‘next’] = monday # Link Monday to Sunday.

Теперь давайте повторим дни.

>>> p = sunday
>>> while(p != None):
…       print(p[‘value’])
…       p = p[‘next’]
Sunday
Monday

И последнее, но не менее важное: вы можете использовать определяемый пользователем класс для определения записей.

class Day:
    def __init__(self, value):
        self.value = value
        self.next = None

Помните, что первым параметром в методе всегда является «я».

sunday = Day(‘Sunday’) # Create a Day object for Sunday.
monday = Day(‘Monday’) # Create a Day object for Monday.
sunday.next = monday # Link Monday to Sunday.

Теперь давайте повторим дни.

>>> p = sunday
>>> while(p != None):
…       print(p.value)
…       p = p.next
Sunday
Monday

Как показывают примеры, записи на основе классов чище, а записи на основе словарей более гибкие. Что касается упражнений по кодированию, то оба они могут хорошо выполнять свою работу. Ваша главная задача в основном будет заключаться в алгоритме.

Что ж, я надеюсь, что эта статья быстро разогреет вас перед собеседованиями по программированию и позволит вам начать практиковаться. Если вы найдете эту статью полезной, пришлите мне положительный отзыв, и я создам последующие статьи.