Часто задаваемые вопросы на собеседовании по Python с ответами (без опыта работы)
В9. Расскажите про функции help() и dir() в питоне.
Функция help() показывает строку документации и справку для ее аргумента:
>>> import copy
>>> help(copy.copy)
Help on function copy in module copy: # справка по функции copy в модуле copy:
copy(x)
Shallow copy operation on arbitrary Python objects. # операция поверхностного копирования для выбранного объекта питона.
See the module"s __doc__ string for more info. № # дополнительную информацию см. в строке __doc__ этого модуля.
Функция dir() возвращает список, содержащий пространство имен в объекте:
>>> dir(copy.copy)
["__annotations__", "__call__", "__class__", "__closure__", "__code__", "__defaults__", "__delattr__", "__dict__", "__dir__", "__doc__", "__eq__", "__format__", "__ge__", "__get__", "__getattribute__", "__globals__", "__gt__", "__hash__", "__init__", "__init_subclass__", "__kwdefaults__", "__le__", "__lt__", "__module__", "__name__", "__ne__", "__new__", "__qualname__", "__reduce__", "__reduce_ex__", "__repr__", "__setattr__", "__sizeof__", "__str__", "__subclasshook__"]
В10. Как получить список из всех ключей словаря (dictionary keys)?
На такие вопросы нужно отвечать детально, с примерами. Данная задача выполняется с помощью функции keys():
>>> mydict={"a":1,"b":2,"c":3,"e":5}
>>> mydict.keys()
dict_keys(["a", "b", "c", "e"])
В11. Что такое срез?
Срез — это методика, которая позволяет получить часть списка, кортежа или строки.
>>> (1, 2, 3, 4, 5)[2:4]
(3, 4)
>>> [7, 6, 8, 5, 9][2:]
[8, 5, 9]
>>> "Hello"[:-1]
"Hell"
В12. Как пишутся комментарии в питоне?
Для этого используется символ #. Все, что написано на строке после него, считается комментарием и игнорируется. Комментарии используются для объяснения цели написанного кода. Многострочных комментариев в прямом смысле слова в питоне нет.
>>> # первая строка комментария
>>> # вторая строка комментария
В13. Как проверить, что все символы строки относятся к алфавитно-цифровым?
Для этого используется метод isalnum().
В14. Как перевести первый символ строки в верхний регистр?
Для этого есть метод capitalize():
>>> "ayushi".capitalize()
"Ayushi"
В15. Все знают, что сегодня питон в моде. Но истинное принятие новой технологии подразумевает понимание ее недостатков. Что вы можете сказать по этому поводу?
Какие в питоне есть ограничения:
- интерпретируемая природа питона снижает скорость исполнения программы
- его не выгодно использовать для мобильных устройств и браузеров
- будучи языком с динамической типизацией данных, он использует утиную типизацию; в связи с этим появляются ошибки исполнения (runtime errors);
- в нем слабо развиты возможности доступа к базам данных; поэтому питон не идеальный вариант для приложений с очень большими базами данных;
- низкие требования на входе, то есть свои силы в питоне может попробовать каждый; это иногда снижает качество кода;
- у питона индивидуально выраженный стиль.
В16. Как в питоне узнать, в какой мы сейчас директории?
Для этого используется функция getcwd(). Она импортируется из модуля os:
>>> import os
>>> os.getcwd()
"C:\\Users\\lifei\\AppData\\Local\\Programs\\Python\\Python36-32"
В17. Как вставить объект, чтобы он оказался под определенным индексом?
Сначала создадим список:
>>> a=[1, 2, 4]
Затем используем метод insert(). В нем первым аргументом будет индекс, под которым вставляется объект, а вторым — значение объекта:
>>> a.insert(2,3)
>>> a
[1, 2, 3, 4]
В18. Как можно обратить (reverse) порядок элементов в списке?
Для этого есть метод reverse():
>>> a.reverse()
>>> a
[4, 3, 2, 1]
В19. Что такое приглашение интерпретатора (interpreter prompt)?
Когда мы заходим в интерпретатор питона, то видим следующую строку:
>>>
В20. Что нужно сделать, чтобы функция возвратила значение?
Для этого используется ключевое слово return:
>>> def add(a, b):
return a + b
В21. Что такое блок?
Когда мы пишем предложение (statement), нам нужно завершить первую строку двоеточием, а под ним написать блок кода, который исполняется в рамках этого предложения. Каждая строка блока пишется с одинаковым отступом.
>>> if 3 > 1:
print("Hello")
print("Goodbye")
Hello
Goodbye
В22. Зачем нужны break и continue?
Они используются для управления последовательностью операций: break останавливает исполнение цикла и переводит исполнение на следующий блок кода, continue как бы перепрыгивает на следующую итерацию цикла и не прекращает его исполнение.
В23. Если мы не поставим двоеточие в конце строки для цикла "do-while", он все равно сработает?
В питоне такой цикл не реализован. Это вопрос из тех, которые с подвохом, когда упоминают элементы других языков.
В24. Напишите в одну строку, как можно получить самую позднюю по значению букву в строке.
Значение буквы определяется по ее коду в ASCII. Для этого подойдет функция max():
>>> max("flyiNg")
"y"
С помощью той же логики можно объяснить следующую строку кода:
>>> max("fly{}iNg")
"}"
В25. В каких областях питон имеет преимущество?
Лучше всего питон использовать в следующих областях:
- веб-приложения
- графические интерфейсы пользователя для настольных ПК
- научные и арифметические приложения
- разработка ПО
- разработка программ обучения
- приложения для бизнеса
- сетевые приложения
- игры, 3D-графика
В26. Можете назвать десять встроенных функций питона?
Функция complex() создает комплексное число:
>>> complex(3.5,4)
(3.5+4j)
Функция eval() исполняет строку:
>>> eval("print(max(22,22.0) — min(2,3))")
20
Функция filter() отфильтровывает элементы, для которых заданное условие верно.
>>> list(filter(lambda x: x%2 == 0,[1, 2, 0, False]))
[2, 0, False]
Функция format() помогает задать формат строки:
>>> print("a = {0} but b = {1}".format(a, b))
a = 2 but b = 3
Функция hash() возвращает хэш-значение объекта:
>>> hash(3.7)
644245917
Функция hex() преобразовывает число в шестнадцатеричное число:
>>> hex(14)
"0xe"
Функция input() читает ввод и возвращает строку:
>>> input("Enter a number")
Enter a number7
"7"
Функция len() возвращает число, показывающее длину строки:
>>> len("Ayushi")
6
Функция locals() возвращает словарь с локальной таблицей имен:
>>> locals()
{"__name__": "__main__", "__doc__": None, "__package__": None, "__loader__": , "__spec__": None, "__annotations__": {}, "__builtins__": , "a": 2, "b": 3}
Функция open() открывает файл:
>>> file = open("tabs.txt")
В27. Какой выход у следующего кода:
>>> word = "abcdefghij"
>>> word[:3] + word[3:]
Выход: "abcdefghij".
В28. Как конвертировать список в строку?
Для этого подойдет метод join():
>>> nums=["one","two","three","four","five","six","seven"]
>>> s=" ".join(nums)
>>> s
"one two three four five six seven"
В29. Как убрать из списка дубликат элемента?
Для этого можно конвертировать список во множество (set):
>>> list = [1, 2, 1, 3, 4, 2]
>>> set(list)
{1, 2, 3, 4}
В30. Можете объяснить жизненный цикл треда?
Общими словами, цикл выглядит так:
- сначала создается класс, который подменяет метод исполнения класса в треде, и создаем экземпляр (instance) для этого класса;
- вызываем start(), который готовит тред к исполнению;
- переводим тред в состояние исполнения;
- можно вызвать разные методы, например sleep() и join(), которые переводят тред в режим ожидания;
- когда режим ожидания или исполнения прекращается, другие ожидающие треды подготавливаются к исполнению;
- после завершения исполнения тред останавливается.
Do'stlaringiz bilan baham: |