Области применения — Фреймворки — IDE — Вывод — Тюплы — Именование — Проверки — Слайсинг — Генератор — docstring — Негативный индекс — Xrange — Pickling — Управление памятью
Опишите Python и его преимущества своими словами.
Язык программирования, поддерживающий объекты, модули, потоки, исключения и автоматическое управление памятью. Преимущества: простота и легкость написания кода, переносимость, расширяемость, удобные встроенные структуры данных, и открытые исходники.
Как Python применяется в тестировании?
- Генерация тестовых данных; обработка (парсинг) результатов; генерация репортов; тестирование API-вызовов
- Экстракция (получение) требований из Word-документов.
- Автоматизация тасков (задач), настройка тестовых окружений, получение и обработка данных при тестировании производительности
- Для автоматизации тестов в Selenium
- Для быстрого создания приложений, используемых тестировщиками
- Манипуляции с тестовыми данными
- Создание и поддержка тестовых окружений
- IronPython в .NET
Какие знаете Python-фреймворки?
Pytest, Unittest, Behave, Robot Framework, Lettuce.
В чем пишут программы на Python?
Если быстро, то Notepad++ с плагином PyNPP, если что-то большое, то Eclipse с PyDev и PyUnit. Если понял философию Python, то IDLE. Если удобство главнее всего, то PyCharm.
Есть такая строка:
yesterday today tomorrow
Напишите функцию print для неё.
print('yesterday\ntoday\ntomorrow')
Есть строка:
hello-how-are-you
Напишите функцию print для неё.
print('hello' + '-' + 'how' + '-' + 'are' + '-' + 'you')
Что будет результатом выражения len(‘’)
?
0.
Есть такой код:
s=’catandapple’
Напишите выражение, которое равно ‘apple’
.
s[-5:]
Напишите какое-нибудь выражение, которое будет True
len('aaddgg') == 6
Что такое тюплы?
Тюплы, а по русски кортежи, это, грубо говоря, неизменяемые списки.
Неизменяемые последовательности, подобные спискам (списки изменяемы). В тюплах-кортежах используются круглые скобки, а не квадратные:tuple = ('test', 5, -0.2)
Какие существуют правила именования в Python?
- Имена переменных должны начинаться с буквы или нижнее подчеркивание
_
- В именах допускаются только буквы, цифры, и _.
Отлично, а русские буквы можно?
Можно, но не рекомендуется, во избежание путаницы. Некоторые буквы в русском и английском алфавитах выглядят совершенно одинаково, а код у них разный.
Какой командой закрыть окно оболочки Python?
quit()
Выведут ли функции help() и dir() названия всех встроенных функций и переменных? Если нет, то как их вывести?
Нет, не выведут. Встроенные функции типа max(), min(), filter(), map() и подобные не выведутся. Чтобы посмотреть их, надо передать модуль ‘builtins’ как аргумент в ‘dir()’, тогда выведутся встроенные функции, эксепшены и другие объекты:
list.>>>dir(__builtins )
[‘ArithmeticError’, ‘AssertionError’, ‘AttributeError’, ……… ]
Как Python выполняет проверку кода при компилировании и выполнении?
Python выполняет некоторые проверки при компиляции, но большинство проверок (типов, имен и пр.) откладываются до выполнения кода. Таким образом, если код на Python запросит пользовательскую функцию которой не существует, такой код скомпилируется успешно, но упадет с ошибкой-эксепшеном, когда будет вызов функции, которой не существует.
Расскажите о unittest одной фразой.
Стандартный модуль для юнит-тестов, поддерживает шеринг сетапов, автоматизацию, группировку тестов в коллекции.
Что такое слайсинг?
Слайсы, лучше по русски срезы, это выборка элементов из последовательностей (списка, кортежа, строки).
Что такое генератор?
Средство экономии памяти и вычислительной мощности. Объект, который при создании не вычисляет сразу значения всех своих элементов (так называемое «ленивое вычисление»). Хранит в памяти только последний вычисленный элемент, правило перехода к следующему элементу, и условие при котором выполнение прерывается.
Что такое ‘docstring’?
Строка документации, идущая после объявления функций, модулей и классов:
def square(n):
'''Возвращает квадрат числа n'''
return n**2
Как скопировать объект?
copy.copy ()
или copy.deepcopy()
Что такое негативный индекс?
Последовательности в Python могут обозначаться не только обычными, но и отрицательными индексами (когда нумерация идет с конца):
>>> a = [1, 3, 8, 7]
>>> a[-1]
7
>>> a[-4]
1
Как конвертировать число в строку?
Встроенной функцией str()
В чем разница между Xrange и range?
Xrange возвращает объект “Xrange”, а range возвращает список независимо от размера “range”.
Опишите понятия модуля и пакета Python.
Всякий файл с программой на Python является модулем, который импортирует другие модули в качестве объектов и атрибутов. Папка с программами на Python является пакетом модулей. В пакете находятся модули или вложенные папки.
Что такое PEP8?
Рекомендации по написанию правильного, хорошо читаемого кода на Python.
Что такое pickling и unpickling?
Модуль pickle превращает любой объект в поток байтов (строку) и сохраняет в файл. Обратный процесс — преобразование оригинального объекта из строки в объект. Для сохранения и загрузки сложных объектов.
Опишите управление памятью в Python.
Память в Python хранится в private heap — эксклюзивной части памяти для хранения всех объектов и структур данных. Разработчик (и тестировщик) не имеет туда доступа, только Python-интерпретатор, который управляет распределением памяти. Но для доступа к этому менеджеру памяти есть API. В Python есть встроенный сборщик мусора, подчищающий неиспользованную память.
***
Дополнительно: Встроенные структуры данных в Python