Skip to content

Latest commit

 

History

History
2522 lines (1820 loc) · 106 KB

File metadata and controls

2522 lines (1820 loc) · 106 KB

Python (Мова програмування)

Примітка: Це український переклад тесту оцінки навичок Python від LinkedIn. Для оригінальної англійської версії дивіться python-quiz.md.


Q1. Що таке абстрактний клас?

  • Абстрактний клас — це назва будь-якого класу, з якого можна створити об'єкт.
  • Абстрактні класи повинні бути перевизначені кожного разу, коли з них створюється об'єкт.
  • Абстрактні класи повинні успадковуватися від конкретних класів.
  • Абстрактний клас існує лише для того, щоб інші "конкретні" класи могли успадковуватися від абстрактного класу.

довідка

Q2. Що відбувається, коли ви використовуєте вбудовану функцію any() для списку?

  • Функція any() завжди повертає випадковий елемент зі списку.
  • Функція any() повертає True, якщо будь-який елемент у списку оцінюється як True. Інакше вона повертає False.
  • Функція any() приймає як аргументи список для перевірки та елемент для перевірки. Якщо "будь-який" з елементів у списку відповідає елементу для перевірки, функція повертає True.
  • Функція any() повертає булеве значення, яке відповідає на питання "Чи є в цьому списку елементи?"

приклад

if any([True, False, False, False]) == True:
    print('Yes, there is True')
>>> 'Yes, there is True'

Q3. У яку структуру даних перетворюється бінарне дерево, якщо воно не збалансоване належним чином?

  • зв'язаний список
  • черга
  • множина
  • OrderedDict

довідка

Q4. Яке твердження про статичні методи є правильним?

  • Статичні методи називаються статичними, тому що вони завжди повертають None.
  • Статичні методи можуть бути прив'язані як до класу, так і до екземпляра класу.
  • Статичні методи здебільшого служать як утилітарні або допоміжні методи, оскільки вони не можуть отримати доступ або змінити стан класу.
  • Статичні методи можуть отримати доступ і змінити стан класу або екземпляра класу.

довідка

Q5. Що таке атрибути?

  • Атрибути — це розширені версії оператора if/else, які використовуються для перевірки рівності між об'єктами.
  • Атрибути — це спосіб зберігати дані або описувати стан для класу або екземпляра класу.
  • Атрибути — це рядки, які описують характеристики класу.
  • Аргументи функцій називаються "атрибутами" в контексті методів класу та методів екземпляра.

Пояснення: Атрибути визначаються під класом, а аргументи — під функціями. Аргументи зазвичай називають параметрами, тоді як атрибути — це конструктори класу або екземпляра класу.

Q6. Який термін описує цей код?

count, fruit, price = (2, 'apple', 3.5)

  • Призначення кортежу.
  • Розпакування кортежу.
  • Зіставлення кортежу.
  • Дублювання кортежу.

Довідка

Q7. Який вбудований метод списку ви б використали для видалення елементів зі списку?

  • метод .delete()
  • pop(my_list)
  • del(my_list)
  • метод .pop()

Довідка

приклад

my_list = [1,2,3]
my_list.pop(0)
my_list
>>>[2,3]

Q8. Яке одне з найпоширеніших застосувань бібліотеки sys Python?

  • Для захоплення аргументів командного рядка, наданих під час виконання файлу.
  • Для з'єднання різних систем, таких як веб-інтерфейс, API-сервіс, база даних та мобільний додаток.
  • Для створення знімка всіх пакетів і бібліотек у вашому віртуальному середовищі.
  • Для сканування стану вашої екосистеми Python, перебуваючи у віртуальному середовищі.

довідка

Q9. Яка часова складність доступу до значення у словнику за його ключем?

  • O(n), також називається лінійним часом.
  • O(log n), також називається логарифмічним часом.
  • O(n^2), також називається квадратичним часом.
  • O(1), також називається постійним часом.

Q10. Який правильний синтаксис для визначення класу під назвою Game, якщо він успадковує від батьківського класу під назвою LogicGame?

  • class Game(LogicGame): pass
  • def Game(LogicGame): pass
  • def Game.LogicGame(): pass
  • class Game.LogicGame(): pass

Пояснення: Батьківський клас, від якого успадковується, передається як аргумент дочірньому класу. Тому тут перший варіант є правильною відповіддю.

Q11. Який правильний формат для написання doctest?

  • A
def sum(a, b):
    """
    sum(4, 3)
    7

    sum(-4, 5)
    1
    """
    return a + b
  • B
def sum(a, b):
    """
    >>> sum(4, 3)
    7

    >>> sum(-4, 5)
    1
    """
    return a + b
  • C
def sum(a, b):
    """
    # >>> sum(4, 3)
    # 7

    # >>> sum(-4, 5)
    # 1
    """
    return a + b
  • D
def sum(a, b):
    ###
    >>> sum(4, 3)
    7

    >>> sum(-4, 5)
    1
    ###
    return a + b

Пояснення: Використовуйте """ для початку та закінчення docstring і використовуйте >>> для представлення виводу. Якщо ви напишете це правильно, ви також можете запустити doctest, використовуючи вбудований модуль doctest

Q12. Який вбудований тип даних Python зазвичай використовується для представлення стеку?

  • set
  • list
  • None
  • dictionary
  • Ви можете побудувати стек тільки з нуля.

Q13. Що поверне цей вираз?

college_years = ['Freshman', 'Sophomore', 'Junior', 'Senior']
return list(enumerate(college_years, 2019))
  • [('Freshman', 2019), ('Sophomore', 2020), ('Junior', 2021), ('Senior', 2022)]
  • [(2019, 2020, 2021, 2022), ('Freshman', 'Sophomore', 'Junior', 'Senior')]
  • [('Freshman', 'Sophomore', 'Junior', 'Senior'), (2019, 2020, 2021, 2022)]
  • [(2019, 'Freshman'), (2020, 'Sophomore'), (2021, 'Junior'), (2022, 'Senior')]

Q14. Яка мета ключового слова "self" при визначенні або виклику методів екземпляра?

  • self означає, що не потрібно передавати інші аргументи в метод.
  • Немає реальної мети для методу self; це просто історичний комп'ютерний жаргон, який Python зберігає для узгодженості з іншими мовами програмування.
  • self посилається на екземпляр, метод якого був викликаний.
  • self посилається на клас, від якого було успадковано для створення об'єкта за допомогою self.

Довідка

Простий приклад

class my_secrets:
    def __init__(self, password):
        self.password = password
        pass
instance = my_secrets('1234')
instance.password
>>>'1234'

Q15. Яка з цих характеристик НЕ є характеристикою namedtuples?

  • Ви можете призначити ім'я кожному з членів namedtuple і посилатися на них таким чином, подібно до того, як ви отримуєте доступ до ключів у dictionary.
  • Кожен член об'єкта namedtuple можна індексувати безпосередньо, як у звичайному tuple.
  • namedtuples такі ж ефективні за пам'яттю, як і звичайні tuples.
  • Не потрібно імпортувати namedtuples, оскільки вони доступні в стандартній бібліотеці.

Ми повинні імпортувати це за допомогою: from collections import namedtuple

Q16. Що таке метод екземпляра?

  • Методи екземпляра можуть змінювати стан екземпляра або стан його батьківського класу.
  • Методи екземпляра містять дані, пов'язані з екземпляром.
  • Метод екземпляра — це будь-який метод класу, який не приймає аргументів.
  • Метод екземпляра — це звичайна функція, яка належить класу, але вона повинна повертати None.

Q17. Яке твердження НЕ описує концепцію інкапсуляції об'єктно-орієнтованого програмування?

  • Вона захищає дані від зовнішнього втручання.
  • Батьківський клас інкапсульований, і жодні дані з батьківського класу не передаються дочірньому класу.
  • Вона зберігає дані та методи, які можуть маніпулювати цими даними, в одному місці.
  • Вона дозволяє змінювати дані тільки методами.

Довідка

Q18. Яка мета оператора if/else?

  • Він повідомляє комп'ютеру, який фрагмент коду виконати, якщо інструкції, які ви закодували, неправильні.
  • Він виконує один фрагмент коду, якщо всі імпорти були успішними, і інший фрагмент коду, якщо імпорти не були успішними.
  • Він виконує один фрагмент коду, якщо умова істинна, але інший фрагмент коду, якщо умова хибна.
  • Він повідомляє комп'ютеру, який фрагмент коду виконати, якщо є достатньо пам'яті для його обробки, і який фрагмент коду виконати, якщо недостатньо пам'яті для його обробки.

Довідка

Q19. Який вбудований тип даних Python найкраще підходить для реалізації черги?

  • dictionary
  • set
  • None. Ви можете побудувати чергу тільки з нуля.
  • list

Q20. Який правильний синтаксис для створення нового об'єкта типу Game?

  • my_game = class.Game()
  • my_game = class(Game)
  • my_game = Game()
  • my_game = Game.create()

Довідка

Q21. Що робить вбудована функція map()?

  • Вона створює шлях від кількох значень в ітерованому об'єкті до одного значення.
  • Вона застосовує функцію до кожного елемента в ітерованому об'єкті і повертає значення цієї функції.
  • Вона перетворює складний тип значення на простіші типи значень.
  • Вона створює відображення між двома різними елементами різних ітерованих об'єктів.

Довідка

Пояснення: - Синтаксис функції map() - це list(map(function,iterable)). Простий пошук площі за допомогою map виглядатиме так

import math
radius = [1,2,3]
area = list(map(lambda x: round(math.pi*(x**2), 2), radius))
area
>>> [3.14, 12.57, 28.27]

Q22. Що відбувається, якщо ви явно не повертаєте значення з функції?

  • Функція поверне RuntimeError, якщо ви не повернете значення.
  • Якщо ключове слово return відсутнє, функція поверне None.
  • Якщо ключове слово return відсутнє, функція поверне True.
  • Функція увійде в нескінченний цикл, оскільки вона не знатиме, коли припинити виконання свого коду.

довідка. Коли оператор return є None або не має значення, або немає оператора return, функція повертає None.

Q23. Яка мета оператора pass у Python?

  • Він використовується для пропуску оператора yield генератора і повернення значення None.
  • Це нульова операція, яка використовується в основному як заповнювач у функціях, класах тощо.
  • Він використовується для передачі керування від одного блоку операторів до іншого.
  • Він використовується для пропуску решти циклу while або for і повернення до початку циклу.

Оператор pass використовується як заповнювач для майбутнього коду. Коли виконується оператор pass, нічого не відбувається, але ви уникаєте помилки, коли порожній код не дозволений. довідка

Q24. Який термін використовується для опису елементів, які можуть бути передані у функцію?

  • аргументи
  • парадигми
  • атрибути
  • декоратори

Q25. Який тип колекції використовується для асоціації значень з унікальними ключами?

  • slot
  • dictionary
  • queue
  • sorted list

Довідка

Q26. Коли цикл For припиняє ітерацію?

  • коли він зустрічає нескінченний цикл
  • коли він зустрічає оператор if/else, який містить ключове слово break
  • коли він оцінив кожен елемент в ітерованому об'єкті, над яким він працює, або зустрічається ключове слово break
  • коли час виконання циклу перевищує O(n^2)

Довідка

Q27. Припускаючи, що вузол знаходиться в односпрямованому зв'язаному списку, яка часова складність пошуку конкретного вузла в односпрямованому зв'язаному списку?

  • Час виконання становить O(n), оскільки в найгіршому випадку вузол, який ви шукаєте, є останнім вузлом, і кожен вузол у зв'язаному списку має бути відвіданий.
  • Час виконання становить O(nk), де n представляє кількість вузлів, а k представляє час, необхідний для доступу до кожного вузла в пам'яті.
  • Час виконання не може бути визначений, якщо ви не знаєте, скільки вузлів знаходиться в односпрямованому зв'язаному списку.
  • Час виконання становить O(1), оскільки ви можете індексувати безпосередньо до вузла в односпрямованому зв'язаному списку.

Q28. Маючи наступні три списки, як би ви створили новий список, який відповідає бажаному виводу, надрукованому нижче?

fruits = ['Apples', 'Oranges', 'Bananas']
quantities = [5, 3, 4]
prices = [1.50, 2.25, 0.89]

#Desired output
[('Apples', 5, 1.50),
('Oranges', 3, 2.25),
('Bananas', 4, 0.89)]
  • A
output = []

fruit_tuple_0 = (first[0], quantities[0], price[0])
output.append(fruit_tuple)

fruit_tuple_1 = (first[1], quantities[1], price[1])
output.append(fruit_tuple)

fruit_tuple_2 = (first[2], quantities[2], price[2])
output.append(fruit_tuple)

return output
  • B
i = 0
output = []
for fruit in fruits:
    temp_qty = quantities[i]
    temp_price = prices[i]
    output.append((fruit, temp_qty, temp_price))
    i += 1
return output
  • C
groceries = zip(fruits, quantities, prices)
return groceries

>>> [
('Apples', 5, 1.50),
('Oranges', 3, 2.25),
('Bananas', 4, 0.89)
]
  • D
i = 0
output = []
for fruit in fruits:
    for qty in quantities:
        for price in prices:
            output.append((fruit, qty, price))
    i += 1
return output

Q29. Що відбувається, коли ви використовуєте вбудовану функцію all() для списку?

  • Функція all() повертає булеве значення, яке відповідає на питання "Чи всі елементи в цьому списку однакові?
  • Функція all() повертає True, якщо всі елементи в списку можуть бути перетворені на рядки. Інакше вона повертає False.
  • Функція all() поверне всі значення в списку.
  • Функція all() повертає True, якщо всі елементи в списку оцінюються як True. Інакше вона повертає False.

Довідка

Пояснення: all() повертає True, якщо всі елементи в списку є True. Дивіться приклад нижче:

test = [True, False, False, False]
if all(test) is True:
    print('Yeah, all of them are true.')
else:
    print('There is an imposter.')

>>> 'There is an imposter'

Q30. Який правильний синтаксис для виклику методу екземпляра в класі з назвою Game?

(Формат відповіді може відрізнятися. Game і roll (або dice_roll) повинні викликатися без параметрів.)

  • A
>>> dice = Game()
>>> dice.roll()
  • B
>>> dice = Game(self)
>>> dice.roll(self)
  • C
>>> dice = Game()
>>> dice.roll(self)
  • D
>>> dice = Game(self)
>>> dice.roll()

Q31. Яка алгоритмічна парадигма швидкого сортування?

  • Зворотний пошук (Backtracking)
  • Динамічне програмування
  • Зменшуй і перемагай (Decrease and conquer)
  • Розділяй і владарюй (Divide and conquer)

І сортування злиттям, і швидке сортування використовують спільну алгоритмічну парадигму, засновану на рекурсії. Ця парадигма, розділяй і владарюй, розбиває проблему на підзадачі, подібні до початкової проблеми, рекурсивно вирішує підзадачі і, нарешті, об'єднує рішення підзадач для вирішення початкової проблеми. довідка

Q32. Яка часова складність вбудованого методу .append() списку?

  • O(1), також називається постійний час.
  • O(log n), також називається логарифмічний час.
  • O(n^2), також називається квадратичний час.
  • O(n), також називається лінійний час.

Ця функція має постійну часову складність, тобто O(1), оскільки списки мають випадковий доступ, тому до останнього елемента можна дістатися за час O(1), тому час, необхідний для додавання нового елемента в кінець списку, становить O(1).

Q33. Яка ключова відмінність між set і list?

  • Set - це впорядкована колекція унікальних елементів. List - це невпорядкована колекція неунікальних елементів.
  • Елементи можна отримати зі списку, але їх не можна отримати з множини.
  • Set - це впорядкована колекція неунікальних елементів. List - це невпорядкована колекція унікальних елементів.
  • Set - це невпорядкована колекція унікальних елементів. List - це впорядкована колекція неунікальних елементів.

Q34. Яке визначення абстракції, застосованої до об'єктно-орієнтованого Python?

  • Абстракція означає, що можна використовувати інший стиль коду, оскільки багато деталей вже відомі програмі за лаштунками.
  • Абстракція означає, що реалізація прихована від користувача, і показуються тільки відповідні дані або інформація.
  • Абстракція означає, що дані та функціональність класу об'єднані в одну сутність.
  • Абстракція означає, що клас може успадковувати більше ніж від одного батьківського класу.

Абстракція в Python визначається як процес обробки складності шляхом приховування непотрібної інформації від користувача. довідка

Q35. Що друкує ця функція?

def print_alpha_nums(abc_list, num_list):
    for char in abc_list:
        for num in num_list:
            print(char, num)
    return

print_alpha_nums(['a', 'b', 'c'], [1, 2, 3])
  • A
a 1
a 2
a 3
b 1
b 2
b 3
c 1
c 2
c 3
  • B
['a', 'b', 'c'], [1, 2, 3]
  • C
aaa
bbb
ccc
111
222
333
  • D
a 1 2 3
b 1 2 3
c 1 2 3

Q36. Виберіть правильне представлення doctest для функції в Python.

  • A
def sum(a, b):
    # a = 1
    # b = 2
    # sum(a, b) = 3

    return a + b
  • B
def sum(a, b):
    """
    a = 1
    b = 2
    sum(a, b) = 3
    """

    return a + b
  • C
def sum(a, b):
    """
    >>> a = 1
    >>> b = 2
    >>> sum(a, b)
    3
    """

    return a + b
  • D
def sum(a, b):
    '''
    a = 1
    b = 2
    sum(a, b) = 3
    '''
    return a + b

Пояснення: Використовуйте """ для початку та закінчення docstring і використовуйте >>> для представлення виводу. Якщо ви напишете це правильно, ви також можете запустити doctest, використовуючи вбудований модуль doctest

Q37. Припустімо, клас Game успадковує від двох батьківських класів: BoardGame і LogicGame. Яке твердження є вірним щодо методів об'єкта, створеного з класу Game?

  • При створенні об'єкта, об'єкт не успадковує жодного з методів батьківського класу.
  • При створенні об'єкта, об'єкт успадкує методи того батьківського класу, у якого більше методів.
  • При створенні об'єкта, програміст повинен вказати, від якого батьківського класу успадковувати методи.
  • Екземпляр класу Game успадкує всі методи, які мають класи BoardGame і LogicGame.

Q38. Що повертає виклик namedtuple для типу колекції?

  • загальний клас об'єкта з ітерованими полями параметрів
  • загальний клас об'єкта з неітерованими іменованими полями
  • підклас кортежу з неітерованими полями параметрів
  • підклас кортежу з ітерованими іменованими полями

Приклад

# namedtuple function accepts the following arguments to generate a class
from collections import namedtuple
>>> Point = namedtuple('Point',['x','y'])
>>> point = Point(100, 200)
>>> point
    Point(x=100, y=200)

# Which lets you use both unpacking and iteration to access
>>> x, y = point
>>> print(f'({x}, {y})')
    (100, 200)
>>> for coordinate in point:
        print(coordinate)
    100
    200

Довідка

Q39. Який символ(и) ви використовуєте для оцінки рівності між двома елементами?

  • &&
  • =
  • ==
  • ||

Q40. Перегляньте код нижче. Який правильний синтаксис для зміни ціни на 1.5?

fruit_info = {
  'fruit': 'apple',
  'count': 2,
  'price': 3.5
}
  • fruit_info['price'] = 1.5
  • my_list[3.5] = 1.5
  • 1.5 = fruit_info['price]
  • my_list['price'] == 1.5

Q41. Яке значення буде повернуто цією перевіркою на рівність?

5 != 6

  • yes
  • False
  • True
  • None

Пояснення: У Python, != еквівалентний не дорівнює.

Q42. Що робить метод __init__() класу?

  • Він робить класи обізнаними один одного, якщо в одному файлі коду визначено більше одного класу.
  • Він включений для збереження зворотної сумісності з Python 3 до Python 2, але він більше не потрібен у Python 3.
  • Це метод, який діє як конструктор і викликається автоматично щоразу, коли з класу створюється новий об'єкт. Він встановлює початковий стан нового об'єкта.
  • Він ініціалізує будь-які імпорти, які ви могли включити на початку вашого файлу.

Довідка

Приклад:

class test:
    def __init__(self):
        print('I came here without your permission lol')
        pass
t1 = test()
>>> 'I came here without your permission lol'

Q43. Що означає фраза "просторова складність"?

  • Скільки мікропроцесорів знадобиться для запуску вашого коду менше ніж за одну секунду
  • Скільки рядків коду є у вашому файлі коду
  • Кількість місця, зайнятого в пам'яті, як функція розміру вхідних даних
  • Скільки копій файлу коду може поміститися в 1 ГБ пам'яті

Q44. Який правильний синтаксис для створення змінної, яка прив'язана до словника?

  • fruit_info = {'fruit': 'apple', 'count': 2, 'price': 3.5}
  • fruit_info =('fruit': 'apple', 'count': 2,'price': 3.5 ).dict()
  • fruit_info = ['fruit': 'apple', 'count': 2,'price': 3.5 ].dict()
  • fruit_info = to_dict('fruit': 'apple', 'count': 2, 'price': 3.5)

Q45. Який правильний спосіб написати спискове включення, яке представляє всі ключі в цьому словнику?

fruits = {'Apples': 5, 'Oranges': 3, 'Bananas': 4}

  • fruit_names = [x in fruits.keys() for x]
  • fruit_names = for x in fruits.keys() *
  • fruit_names = [x for x in fruits.keys()]
  • fruit_names = x for x in fruits.keys()

Q46. Яка мета ключового слова self при визначенні або виклику методів екземпляра об'єкта?

  • self посилається на клас, від якого було успадковано для створення об'єкта за допомогою self.
  • Немає реальної мети для методу self. Це просто старий комп'ютерний жаргон, який Python зберігає для узгодженості з іншими мовами програмування.
  • self означає, що в метод не потрібно передавати інші аргументи.
  • self посилається на екземпляр, метод якого був викликаний.

Пояснення: - Спробуйте запустити приклад з Q42 без передачі аргументу self всередину __init__, і ви зрозумієте причину.

Q47. Яке твердження про методи класу є вірним?

  • Метод класу - це звичайна функція, яка належить класу, але вона повинна повертати None.
  • Метод класу може змінювати стан класу, але він не може безпосередньо змінювати стан екземпляра, який успадковує від цього класу.
  • Метод класу подібний до звичайної функції, але метод класу не приймає жодних аргументів.
  • Метод класу зберігає всі дані для конкретного класу.

Довідка

Q48. Що означає, що функція має лінійний час виконання?

  • Ви не використовували багато передових концепцій комп'ютерного програмування у вашому коді.
  • Рівень складності, на якому написаний ваш код, не такий високий.
  • Ваша програма виконається менше ніж за пів секунди.
  • Час, необхідний для завершення функції, зростає лінійно зі збільшенням розміру вхідних даних.

Q49. Який правильний спосіб визначення функції?

  • def getMaxNum(list_of_nums): # body of function goes here
  • func get_max_num(list_of_nums): # body of function goes here
  • func getMaxNum(list_of_nums): # body of function goes here
  • def get_max_num(list_of_nums): # body of function goes here

довідка

Q50. Згідно з настановами стилю кодування PEP 8, як слід іменувати постійні значення в Python?

  • у верблюжому регістрі без використання підкреслень для розділення слів -- наприклад maxValue = 255
  • у нижньому регістрі з підкресленнями для розділення слів -- наприклад max_value = 255
  • усіма великими літерами з підкресленнями, що розділяють слова -- наприклад MAX_VALUE = 255
  • у змішаному регістрі без використання підкреслень для розділення слів -- наприклад MaxValue = 255

Довідка

Q51. Опишіть функціональність deque.

  • Deque додає елементи з одного боку і видаляє елементи з іншого боку.
  • Deque додає елементи з одного або обох боків, але видаляє елементи тільки зверху.
  • Deque додає елементи з одного або обох кінців і видаляє елементи з одного або обох кінців.
  • Deque додає елементи тільки зверху, але видаляє їх з одного або обох боків.

довідка

Q52. Який правильний синтаксис для створення змінної, яка прив'язана до множини?

  • my_set = {0, 'apple', 3.5}
  • my_set = to_set(0, 'apple', 3.5)
  • my_set = (0, 'apple', 3.5).to_set()
  • my_set = (0, 'apple', 3.5).set()

Q53. Який правильний синтаксис для визначення методу __init__(), який не приймає параметрів?

  • :
class __init__(self):
    pass
  • :
def __init__():
    pass
  • :
class __init__():
    pass
  • :
def __init__(self):
    pass

Q54. Яке з наступних тверджень є ІСТИННИМ щодо того, як числові дані будуть організовані в бінарному дереві пошуку?

  • Для будь-якого вузла в бінарному дереві пошуку значення вузла більше за всі значення в лівому піддереві вузла і менше за значення в його правому піддереві.
  • Бінарне дерево пошуку не може бути використане для організації і пошуку числових даних.
  • Верхній вузол бінарного дерева пошуку буде довільним числом.
  • Найменше числове значення піде в верхній вузол.

довідка

Q55. Навіщо ви б використовували декоратор?

  • Декоратор подібний до класу і повинен використовуватися, якщо ви займаєтеся функціональним програмуванням.
  • Декоратор - це візуальний індикатор для того, хто читає ваш код.
  • Ви використовуєте декоратор для зміни функціональності функції без необхідності змінювати код функції.
  • Оператор import передує декоратор.

довідка

Q56. Коли ви б використовували цикл for?

  • Тільки в деяких ситуаціях, оскільки цикли використовуються тільки для певних типів програмування.
  • Коли вам потрібно перевірити кожен елемент в ітерованому об'єкті відомої довжини.
  • Коли ви хочете мінімізувати використання рядків у вашому коді.
  • Коли ви хочете запустити код в одному файлі для функції в іншому файлі.

Довідка

Q57. Який найбільш самоописувальний спосіб визначення функції, яка обчислює податок з продажу на покупку?

  • A
  • B
  • C
  • D: def calculate_sales_tax(subtotal): pass

Q58. Що станеться, якщо ви не зміните стан елемента, на якому алгоритм працює рекурсивно?

  • Вам не потрібно змінювати стан елемента, на якому алгоритм рекурсує.
  • Ви зрештою отримаєте KeyError.
  • Ви отримаєте RuntimeError: maximum recursion depth exceeded.
  • Функція, яка використовує рекурсію, поверне None.

пояснення

Q59. Яка часова складність пошуку елемента в бінарному дереві пошуку?

  • Час виконання пошуку в бінарному дереві пошуку становить O(1).
  • Час виконання пошуку в бінарному дереві пошуку становить O(n!).
  • Час виконання пошуку в бінарному дереві пошуку зазвичай становить O(h), де h - висота дерева.
  • Час виконання пошуку в бінарному дереві пошуку становить O(n).

пояснення

Q60. Навіщо ви б використовували mixin?

  • Ви використовуєте mixin, щоб змусити функцію прийняти аргумент під час виконання.
  • Ви використовуєте mixin, щоб дозволити декоратору приймати ключові аргументи.
  • Ви використовуєте mixin, щоб переконатися, що атрибути та методи класу не заважають глобальним змінним і функціям.
  • Якщо у вас є багато класів, які потребують однакової функціональності, ви б використовували mixin для визначення цієї функціональності.

довідка

Q61. Яка часова складність додавання елемента до стеку і видалення елемента зі стеку?

  • Додавання елементів до стеку за час O(1) і видалення елементів зі стеку за час O(n).
  • Додавання елементів до стеку за час O(1) і видалення елементів зі стеку за час O(1).
  • Додавання елементів до стеку за час O(n) і видалення елементів зі стеку за час O(1).
  • Додавання елементів до стеку за час O(n) і видалення елементів зі стеку за час O(n).

Q62. Яке твердження точно описує, як елементи додаються і видаляються зі стеку?

  • стек додає елементи з одного боку і видаляє елементи з іншого боку.
  • стек додає елементи зверху і видаляє елементи зверху.
  • стек додає елементи зверху і видаляє елементи з будь-якого місця в стеку.
  • стек додає елементи з будь-якого кінця і видаляє елементи з будь-якого кінця.

Пояснення: Стек використовує підхід останнім прийшов - першим вийшов.

Q63. Що таке базовий випадок у рекурсивній функції?

  • Базовий випадок - це умова, яка дозволяє алгоритму припинити рекурсію. Зазвичай це проблема, достатньо мала, щоб вирішити її безпосередньо.
  • Базовий випадок - це резюме загальної проблеми, яку потрібно вирішити.
  • Базовий випадок передається як аргумент функції, тіло якої використовує рекурсію.
  • Базовий випадок подібний до базового класу в тому, що він може бути успадкований іншим об'єктом.

Q64. Чому вважається хорошою практикою відкривати файл з Python-скрипта за допомогою ключового слова with?

  • Ключове слово with дозволяє вибрати, в якому додатку відкрити файл.
  • Ключове слово with діє як цикл for і дозволяє отримати доступ до кожного рядка у файлі по одному.
  • Немає переваг у використанні ключового слова with для відкриття файлу в Python.
  • Коли ви відкриваєте файл за допомогою ключового слова with у Python, Python переконається, що файл закривається, навіть якщо виникає виняток або помилка.

Довідка

Q65. Навіщо ви б використовували віртуальне середовище?

  • Віртуальні середовища створюють "бульбашку" навколо вашого проекту, щоб будь-які бібліотеки або пакети, які ви встановлюєте в ньому, не впливали на всю вашу машину.
  • Команди з віддаленими співробітниками використовують віртуальні середовища, щоб вони могли ділитися кодом, робити огляди коду та співпрацювати віддалено.
  • Віртуальні середовища були поширені в Python 2, оскільки вони доповнювали відсутні функції в мові. Віртуальні середовища не потрібні в Python 3 через вдосконалення мови.
  • Віртуальні середовища прив'язані до вашого облікового запису GitHub або Bitbucket, що дозволяє вам отримувати доступ до будь-якого з ваших репозиторіїв віртуально з будь-якої машини.

Q66. Який правильний спосіб запустити всі doctest у даному файлі з командного рядка?

  • python3 -m doctest <_filename_>
  • python3 <_filename_>
  • python3 <_filename_> rundoctests
  • python3 doctest

довідка

Q67. Що таке lambda-функція?

  • будь-яка функція, яка використовує наукові або математичні константи, часто представлені грецькими літерами в академічних роботах
  • функція, яка виконується, коли використовуються декоратори
  • будь-яка функція, визначення якої міститься в п'яти рядках коду або менше
  • невелика анонімна функція, яка може приймати будь-яку кількість аргументів, але має лише один вираз для оцінки

Довідка

Q68. Яка основна різниця між списками і кортежами?

  • Ви можете отримати доступ до конкретного елемента в списку, індексуючи його позицію, але ви не можете отримати доступ до конкретного елемента в кортежі, якщо не ітеруєте через кортеж
  • Списки є змінюваними, тобто ви можете змінювати дані всередині них у будь-який час. Кортежі є незмінними, тобто ви не можете змінювати дані всередині них після створення кортежу.
  • Списки є незмінними, тобто ви не можете змінювати дані всередині них після створення списку. Кортежі є змінюваними, тобто ви можете змінювати дані всередині них у будь-який час.
  • Списки можуть містити кілька типів даних одночасно, але кортежі можуть містити лише один і той же тип даних, якщо присутні кілька елементів.

Довідка

Q69. Що повертає генератор?

  • None
  • Ітерований об'єкт
  • Структуру даних зв'язаного списку з непорожнього списку
  • Всі ключі даного словника

Q70. Яка різниця між атрибутами класу та атрибутами екземпляра?

  • Атрибути екземпляра можна змінювати, але атрибути класу не можна змінювати
  • Атрибути класу спільні для всіх екземплярів класу. Атрибути екземпляра можуть бути унікальними лише для цього екземпляра
  • Немає різниці між атрибутами класу та атрибутами екземпляра
  • Атрибути класу належать лише класу, а не екземпляру цього класу. Атрибути екземпляра спільні для всіх екземплярів класу

Q71. Який правильний синтаксис для створення методу екземпляра?

  • :
def get_next_card():
  # method body goes here
  • :
def get_next_card(self):
  # method body goes here
  • :
def self.get_next_card():
  # method body goes here
  • :
def self.get_next_card(self):
  # method body goes here

Q72. Який правильний спосіб виклику функції?

  • get_max_num([57, 99, 31, 18])
  • call.(get_max_num)
  • def get_max_num([57, 99, 31, 18])
  • call.get_max_num([57, 99, 31, 18])

Q73. Як додати коментар до існуючого Python-скрипта?

  • -- This is a comment
  • # This is a comment
  • /* This is a comment */
  • // This is a comment

Довідка

Q74. Який правильний синтаксис для заміни рядка apple у списку на рядок orange?

my_list = ['kiwi', 'apple', 'banana']
  • orange = my_list[1]
  • my_list[1] = 'orange'
  • my_list['orange'] = 1
  • my_list[1] == orange

Q75. Що станеться, якщо ви використовуєте цикл while і забудете включити логіку, яка зрештою призводить до зупинки циклу while?

  • Нічого не станеться; ваш комп'ютер знає, коли припинити виконання коду в циклі while.
  • Ви отримаєте KeyError.
  • Ваш код застрягне в нескінченному циклі.
  • Ви отримаєте WhileLoopError.

Q76. Опишіть функціональність черги.

  • Черга додає елементи з будь-якого кінця і видаляє елементи з будь-якого кінця.
  • Черга додає елементи зверху і видаляє елементи зверху.
  • Черга додає елементи зверху і видаляє елементи з будь-якого місця в списку.
  • Черга додає елементи зверху і видаляє елементи з будь-якого місця в черзі.

Q77. Який вибір є найбільш синтаксично правильним прикладом умовного розгалуження?

  • A
  • B
  • C
  • D

Q78. Як працює defaultdict?

  • defaultdict автоматично створить для вас словник, який має ключі, які є цілими числами 0-10.
  • defaultdict змушує словник приймати тільки ключі типів, вказаних при створенні defaultdict.
  • Якщо ви спробуєте прочитати з defaultdict неіснуючий ключ, для вас буде створена нова пара ключ-значення за замовчуванням замість викидання KeyError.
  • defaultdict зберігає копію словника в пам'яті, до якої ви можете повернутися за замовчуванням, якщо оригінал буде ненавмисно змінений.

довідка

Q79. Який правильний синтаксис для додавання ключа під назвою variety до словника fruit_info, який має значення Red Delicious?

  • fruit_info['variety'] == 'Red Delicious'
  • fruit_info['variety'] = 'Red Delicious'
  • red_delicious = fruit_info['variety']
  • red_delicious == fruit_info['variety']

Q80. Коли ви б використовували цикл while?

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

Q81. Який правильний синтаксис для визначення методу __init__(), який встановлює атрибути, специфічні для екземпляра, під час створення нового екземпляра класу?

  • :
def __init__(self, attr1, attr2):
    attr1 = attr1
    attr2 = attr2
  • :
def __init__(attr1, attr2):
    attr1 = attr1
    attr2 = attr2
  • :
def __init__(self, attr1, attr2):
    self.attr1 = attr1
    self.attr2 = attr2
  • :
def __init__(attr1, attr2):
    self.attr1 = attr1
    self.attr2 = attr2

Q82. Що надрукує ця рекурсивна функція, якщо її викликати без параметрів?

def count_recursive(n=1):
    if n > 3:
        return
    print(n)
    count_recursive(n + 1)
  • : 1 1 2 2 3 3
  • : 3 2 1
  • : 3 3 2 2 1 1
  • : 1 2 3

Q83. У Python, при роботі з множинами, ви використовуєте _ для обчислення перетину між двома множинами і _ для обчислення об'єднання.

  • Intersect; union
  • |; &
  • &; |
  • &&; ||

Q84. Що поверне цей фрагмент коду?

import numpy as np
np.ones([1,2,3,4,5])
  • Він повертає матрицю 5x5; кожен рядок матиме значення 1,2,3,4,5.
  • Він повертає масив зі значеннями 1,2,3,4,5.
  • Він повертає п'ять різних квадратних матриць, заповнених одиницями.
  • Він повертає 5-вимірний масив розміром 1x2x3x4x5, заповнений одиницями.

Довідка

Q85. Ви зіткнулися з FileNotFoundException при використанні лише імені файлу в функції open. Яке може бути найпростіше рішення?

  • Переконайтеся, що файл знаходиться в системному PATH.
  • Створіть символічне посилання для кращого доступу до файлу.
  • Скопіюйте файл у той самий каталог, з якого запускається скрипт.
  • Додайте шлях до файлу до змінної середовища PYTHONPATH.

Q86. Що поверне ця команда?

{x for x in range(100) if x%3 == 0}
  • Множину всіх кратних 3 менше 100.
  • Множину всіх чисел від 0 до 100, помножених на 3.
  • Список всіх кратних 3 менше 100.
  • Множину всіх кратних 3 менше 100, за винятком 0.

довідка

Q87. Що дозволяє робити оператор // у Python 3?

  • Виконувати цілочислове ділення.
  • Виконувати операції з експонентами.
  • Знайти залишок від операції ділення.
  • Виконувати ділення з плаваючою точкою.

Q88. Який файл імпортується для використання дат у Python?

  • datetime
  • dateday
  • daytime
  • timedate

Q89. Який правильний синтаксис для визначення класу під назвою Game?

  • def Game(): pass
  • def Game: pass
  • class Game: pass
  • class Game(): pass

довідка

Q90. Який правильний синтаксис для виклику методу екземпляра в класі під назвою Game?

  • my_game = Game(self) self.my_game.roll_dice()
  • my_game = Game() self.my_game.roll_dice()
  • my_game = Game() my_game.roll_dice()
  • my_game = Game(self) my_game.roll_dice(self)

Q91. Який вивід цього коду? (NumPy імпортовано як np.)

a = np.array([1,2,3,4])
print(a[[False, True, False, False]])
  • {0,2}
  • [2]
  • {2}
  • [0,2,0,0]

Q92. Припустімо, у вас є рядкова змінна, визначена як y="stuff;thing;junk;". Який буде вивід цього коду?

z = y.split(';')
len(z)
  • 17
  • 4
  • 0
  • 3

Q93. Який вивід цього коду?

num_list = [1,2,3,4,5]
num_list.remove(2)
print(num_list)
  • [1,2,4,5]
  • [1,3,4,5]
  • [3,4,5]
  • [1,2,3]

Пояснення: .remove() базується на значенні елемента, а не на індексі; тут він видаляє елемент, що відповідає "2".

Q94. Яка команда створить список від 10 до 1?

[10,9,8,7,6,5,4,3,2,1]

  • reversed(list(range(1,11)))
  • list(reversed(range(1,10)))
  • list(range(10,1,-1))
  • list(reversed(range(1,11)))

Довідка

Q95. Який фрагмент коду надрукує той самий вивід, що й цей фрагмент?

import math
print(math.pow(2,10))
  • : print(2^10)
  • : print(2**10)
  • : y = [x*2 for x in range(1,10)] print(y)
  • : y = 1 for i in range(1,10): y = y * 2 print(y)

Довідка

Q96. Елементи, оточені [], є _, {} є _, а () є _.

  • тільки множини; списки або словники; кортежі
  • списки; тільки множини; кортежі
  • кортежі; множини або списки; словники
  • списки; словники або множини; кортежі

Довідка

Q97. Який вивід цього коду? (NumPy імпортовано як np.)

table = np.array([
    [1,3],
    [2,4]])
print(table.max(axis=1))
  • [2, 4]
  • [3, 4]
  • [4]
  • [1,2]

Довідка

Q98. Що надрукує цей код?

number = 3
print(f"The number is {number}")
  • The number is 3
  • the number is 3
  • THE NUMBER IS 3
  • Він викидає TypeError, оскільки ціле число повинно бути перетворене на рядок.

Довідка

Q99. Який синтаксис правильно створює змінну, яка прив'язана до кортежу?

  • my_tuple tup(2, 'apple', 3.5)
  • my_tuple [2, 'apple', 3.5].tuple()
  • my_tuple = (2, 'apple', 3.5)
  • my_tuple = [2, 'apple', 3.5]

Довідка

Q100. Який режим НЕ є дійсним способом доступу до файлу з Python-скрипта?

  • write('w')
  • scan('s')
  • append('a')
  • read('r')

Довідка

Q101. NumPy дозволяє перемножувати два масиви без циклу for. Це приклад _.

  • Векторизації.
  • Атрибуцій.
  • Прискорення.
  • Функціонального програмування.

Q102. Який вбудований тип даних Python може бути використаний як хеш-таблиця?

  • set
  • list
  • tuple
  • dictionary

Q103. Яка функція Python дозволяє виконувати команди оболонки Linux у Python?

  • sys.exc_info()
  • os.system()
  • os.getcwd()
  • sys.executable

Q104. Припустімо, у вас є наступний фрагмент коду, і ви хочете витягти список тільки з літерами. Який фрагмент коду _не_ досягне цієї мети?

my_dictionary = {
    'A': 1,
    'B': 2,
    'C': 3,
    'D': 4,
    'E': 5
}
  • letters = [] for letter in my_dictionary.values(): letters.append(letter)
  • letters = my_dictionary.keys()
  • letters = [letter for (letter, number) in my_dictionary.items()]
  • letters4 = list(my_dictionary)

Пояснення: Перший варіант повертає список значень (чисел). Решта варіантів повертають список ключів.

Q105. Коли масив великий, NumPy не буде друкувати весь масив при використанні вбудованої функції print. Яку функцію ви можете використовувати в NumPy, щоб змусити його надрукувати весь масив?

  • set_printparams
  • set_printoptions
  • set_fullprint
  • setp_printwhole

Q106. Коли ви б використовували блок try/except у коді?

  • Ви використовуєте блоки try/except, коли хочете запустити якийсь код, але потребуєте спосіб виконати інший код, якщо виникає виняток.
  • Ви використовуєте блоки try/except всередині модульних тестів, щоб модульні тести завжди проходили.
  • Ви використовуєте блоки try/except, щоб продемонструвати рецензентам коду, що ви спробували новий підхід.
  • Ви використовуєте блоки try/except, щоб жодна з ваших функцій або методів не повертала None.

Довідка

Q107. У Python, як компілятор може ідентифікувати внутрішній блок циклу for?

  • через рівень відступу після циклу for
  • через ключове слово end в кінці циклу for
  • через те, що блок оточений фігурними дужками ({})
  • через порожній пробіл в кінці тіла циклу for

Q108. Який механізм Python найкраще підходить для повідомлення користувача, що він використовує застарілу функцію?

  • sys.stdout
  • Traceback
  • Warnings
  • Exceptions

Q109. Яким буде значення x після виконання цього коду?

x = {1,2,3,4,5}
x.add(5)
x.add(6)
  • {1, 2, 3, 4, 5, 5, 6}
  • {5, 6, 1, 2, 3, 4, 5, 6}
  • {6, 1, 2, 3, 4, 5}
  • {1, 2, 3, 4, 5, 6}

Пояснення: Метод .add() додає елемент до множини тільки якщо він ще не існує.

Q110. Як би ви отримали доступ і зберегли всі ключі цього словника одразу?

fruit_info = {
    'fruit': 'apple',
    'count': 2,
    'price': 3.5
}
  • my_keys = fruit_info.to_keys()
  • my_keys = fruit_info.all_keys()
  • my_keys = fruit_info.keys
  • my_keys = fruit_info.keys()

Q111. Що не так з цим визначенням функції?

def be_friendly(greet = "How are you!", name):
    pass
  • name є зарезервованим словом.
  • Підкреслення не дозволені в іменах функцій.
  • Аргумент без значення за замовчуванням слідує за аргументом зі значенням за замовчуванням.
  • З цим визначенням функції нічого не так.

Q112. За умови, що NumPy імпортовано як np, який вибір поверне True?

  • : a = np.zeros([3,4]) b = a.copy() np.array_equal(a,b)
  • : a = np.empty([3,4]) b = np.empty([3,4]) np.array_equal(a,b)
  • : a = np.zeros([3,4]) b = np.zeros([4,3]) np.array_equal(a,b)
  • : a = np.array([1, np.nan]) np.array_equal(a,a)

Q113. Як додати коментар до існуючого Python-скрипта?

  • // This is a comment
  • # This is a comment
  • -- This is a comment
  • /* This is a comment *\

Q114. У цьому фрагменті коду, якими будуть значення c і d?

import numpy as np
a = np.array([1,2,3])
b = np.array([4,5,6])
c = a*b
d = np.dot(a,b)
  • A: c = [ a[1] * b[1], a[2] * b[2], a[3] * b[3] ] d = sum(c)
  • B: c = a[0] * b[0], a[1] * b[1], a[2] * b[2] d = [ a[0] * b[0], a[1] * b[1], a[2] * b[2] ]
  • C: c = [ a[0] * b[0], a[1] * b[1], a[2] * b[2] ] d = sum(a) + sum(b)
  • D: c = [ a[0] * b[0], a[1] * b[1], a[2] * b[2] ] d = sum(c)

Q115. Які дві функції в бібліотеці NumPy ви могли б використати для вирішення системи лінійних рівнянь?

  • linalg.eig() and .matmul()
  • linalg.inv() and .dot()
  • linalg.det() and .dot()
  • linalg.inv() and .eye()

Q116. Який правильний синтаксис для створення змінної, яка прив'язана до списку?

  • my_list = (2, 'apple', 3.5)
  • my_list = [2, 'apple', 3.5]
  • my_list = [2, 'apple', 3.5].to_list()
  • my_list = to_list(2, 'apple', 3.5)

Довідка

Q117. Цей код надає _ списку чисел.

num_list = [21, 13, 19, 3, 11, 5, 18]
num_list.sort()
num_list[len(num_list) // 2]
  • моду
  • середнє
  • середнє арифметичне
  • медіану

Q118. Які дві основні структури даних у бібліотеці Pandas?

  • Arrays і DataFrames
  • Series і Matrixes
  • Matrixes і DataFrames
  • Series і DataFrames

Довідка

Q119. Припустімо, у вас є змінна під назвою vector типу np.array з 10,000 елементів. Як ви можете перетворити vector на змінну під назвою matrix з розмірами 100x100?

  • matrix = (vector.shape = (100,100))
  • matrix = vector.to_matrix(100,100)
  • matrix = matrix(vector,100,100)
  • matrix = vector.reshape(100, 100)

Довідка

Q120. Який вибір є незмінним типом даних?

  • Dictionary
  • List
  • Set
  • String

Довідка

Q121. Який вивід цього коду?

def myFunction(country = "France"):
    print(f"Hello, I am from {country}")

myFunction("Spain")
myFunction("")
myFunction()
  • : Hello, I am from Spain Hello, I am from Hello, I am from
  • : Hello, I am from France Hello, I am from France Hello, I am from France
  • : Hello, I am from Spain Hello, I am from Hello, I am from France
  • : Hello, I am from Spain Hello, I am from France Hello, I am from France

Q122. Виберіть варіант нижче, для якого екземпляр класу не може бути створений.

  • Анонімний клас
  • Батьківський клас
  • Вкладений клас
  • Абстрактний клас

Довідка

Q123. Використовуючи Pandas, ми завантажуємо набір даних з Kaggle. Яка команда поверне загальну кількість вижилих?

  • sum(titanic['Survived'])
  • [x for x in titanic['Survived'] if x == 1]
  • len(titanic["Survived"])
  • sum(titanic['Survived']==0)

Q124. Як би ви створили список кортежів, що відповідають цим спискам персонажів і акторів?

characters = ["Iron Man", "Spider Man", "Captain America"]
actors = ["Downey", "Holland", "Evans"]
  • [(x,y)] for x in characters for y in actors]
  • zip(characters, actors)
  • d = {} for x in range(1, len(characters)): d[x] = actors[x]
  • {x:y for x in characters for y in actors}

Q125. Що поверне цей вираз?

{x : x*x for x in range(1,100)}
  • Словник з x як ключем і x у квадраті як його значенням; від 1 до 100.
  • Словник з x як ключем і x у квадраті як його значенням; від 1 до 99.
  • Множину кортежів, що складаються з (x, x у квадраті); від 1 до 99.
  • Список з усіма числами у квадраті від 1 до 99.

Q126. Подібність Jaccard - це формула, яка показує, наскільки подібні дві множини. Який вибір є точною реалізацією в Python?

  • def jaccard(a, b): return len (a | b) / len (a & b)
  • def jaccard(a, b): return len (a & b) / len (a | b)
  • def jaccard(a, b): return len (a && b) / len (a || b)
  • def jaccard(a, b): return a.intersection(b) / a.union(b)

Довідка

Q127. Який вибір НЕ є властивим числовим типом у Python?

  • Long
  • Int
  • Float
  • Double

Q128. Який буде вивід цього коду?

[1,2,3] * 3
  • [3,2,3]
  • [1, 2, 3, 1, 2, 3, 1, 2, 3]
  • Ви отримаєте помилку типу.
  • [3,6,9]

Q129. За умови, що список визначено як numbers = [1,2,3,4], яке значення numbers[-2]?

  • 1
  • 3
  • 2
  • Викидається виняток IndexError.

Q130. Яке твердження про рядки в Python є вірним?

  • Рядки можуть бути оточені подвійними лапками (") або одинарними лапками (').
  • Рядки можуть бути оточені тільки одинарними лапками (').
  • Односимвольні рядки повинні бути оточені одинарними лапками ('), а решта повинна бути оточена подвійними лапками (").
  • Рядки можуть бути оточені тільки подвійними лапками (").

Q131. Який правильний синтаксис для визначення методу __init__(), який не приймає параметрів?

  • def __init__(self): pass
  • class __init__(self): pass
  • class __init__(): pass
  • def __init__(): pass

Q132. Припустімо, вам потрібно використовувати функцію sin з бібліотеки math. Який правильний синтаксис для імпорту тільки цієї функції?

  • using math.sin
  • import math.sin
  • from math import sin
  • import sin from math

Довідка

Q133. Що ви отримаєте, якщо застосуєте numpy.sum() до списку, який містить тільки булеві значення?

  • 0
  • кількість всіх значень True
  • помилку типу
  • None

Q134. Що надрукує цей код?

print("foo" if (256).bit_length() > 8 else "bar")
  • True
  • foo
  • Ви отримаєте повідомлення про помилку, оскільки постійні цілі значення не є класами.
  • bar

Q135. Якщо ви явно не повертаєте значення з функції, що відбувається?

  • Якщо ключове слово return відсутнє, функція поверне True.
  • Функція ввійде в нескінченний цикл, оскільки вона не знатиме, коли припинити виконання свого коду.
  • Функція поверне RuntimeError, якщо ви не повернете значення.
  • Якщо ключове слово return відсутнє, функція поверне None.

Q136. Часто буває, що бібліотека pandas використовується для _ даних, а NumPy для _ даних.

  • рядкових; числових
  • неструктурованих; структурованих
  • числових; табличних
  • табличних; числових

Q137. Що вам потрібно зробити, щоб встановити додаткові пакети в Python?

  • Використовувати компілятор C, такий як gcc або clang.
  • Використовувати менеджер пакетів, такий як pip або conda.
  • Використовувати IDE, таке як Notepad++ або Idle.
  • Використовувати менеджер пакетів, такий як NPM або NuGet.

Q138. Зображення нижче було створено за допомогою Matplotlib. Це графік розподілу списку цілих чисел, заповнених числами за допомогою функції _ і побудованих за допомогою _.

  • random.uniform(0,50);plt.hist
  • random.gauss(50,20);plt.hist
  • random();plt.scatter
  • random.triangular(0,50);plt.bar

Довідка

Q139. У цьому фрагменті коду, якими будуть значення a і b?

import numpy as np

a = np.arange(100)
b = a[50:60:2]
  • a: всі цілі числа від 0 до 99 (включно); b: всі парні числа від 50 до 58 (включно).
  • a: всі цілі числа від 0 до 100 (включно); b: всі парні числа від 50 до 60 (включно).
  • a: всі цілі числа від 0 до 99 (включно); b: всі парні числа від 50 до 60 (включно).
  • a: всі цілі числа від 0 до 99 (включно); b: всі непарні числа від 49 до 59 (включно).

Q140. При використанні NumPy у Python, як перевірити розмірність (кількість і довжину вимірів) об'єкта під назвою my_object?

  • my_object.get_shape()
  • my_object.shape
  • my_object.dim()
  • len(my_object)

Q141. Припустімо, у вас є непорожній список під назвою mylist, і ви хочете знайти конкретне значення. Мінімальна кількість порівнянь буде _, а максимальна кількість порівнянь буде _?

  • len(mylist); len(mylist)
  • 1; len(mylist)
  • 2; len(mylist)
  • 0; len(mylist)

Q142. Якщо функція не має оператора return, що вона повертає?

  • 0
  • True
  • None
  • False

Q143. Припустімо, ви хочете перевірити, чи можна перемножити дві матриці за допомогою NumPy. Як би ви заповнили пропуски відповідними змінними?

import numpy as np

def can_matrices_be_multiplied (matrix1, matrix2):
    rowsMat1, columnsMat1 = matrix1.shape
    rowsMat2, columnsMat2 = matrix2.shape

    if _____ == ______ :
        print("The matrices can be multiplied!")
        return True
    else:
        return False
  • columnsMat1; rowsMat1;
  • columnsMat1; rowsMat2;
  • columnsMat1; columnsMat2;
  • columnsMat2; rowsMat1;

довідка

Q144. Який вивід цього comprehension?

[(x, x+1) for x in range(1,5)]

  • [(1, 2), (2, 3), (3, 4), (4, 5), (5, 6)]
  • [1,2,3,4,5]
  • [(1, 2), (2, 3), (3, 4)]
  • [(1, 2), (2, 3), (3, 4), (4, 5)]

Q145. У Python метод класу повинен мати _ як декоратор функції, і перший параметр методу буде посиланням на _.

  • @classmethod; клас
  • inline; клас
  • static; self
  • @static; self

Довідка

Q146. Який фрагмент коду надрукує My name is Joffrey, son of Robert?

  • : class Father(): name = 'Robert' class Person(Father): def __init__(self, name): self.fathername = super.name
  • : class Father(): name = 'Robert' class Person(Father): def __init__(self, name): self.fathername = self.name
  • : class Father(): name = 'Robert' class Person(Father): def __init__(self, name): self.name = name def introduce(self): print(f"My name is {self.name} son of {super.name}")
  • : class Father(): name = 'Robert' class Person(Father): def __init__(self, name): self.name = name def introduce(self): print(f"My name is {self.name} son of {base.name}")

Q147. Що виводить цей код у консоль, припускаючи, що defaultdict вже імпортовано?

animals = {
    'a': ['ant', 'antelope', 'armadillo'],
    'b': ['beetle', 'bear', 'bat'],
    'c': ['cat', 'cougar', 'camel']
}

animals = defaultdict(list, animals)

print(animals['b'])
print(animals['d'])
  • A: ['beetle', 'bear', 'bat'] []
  • B: ['beetle', 'bear', 'bat'] # an exception will be thrown
  • C: ['beetle', 'bear', 'bat'] None
  • D: ['bat', 'bear', 'beetle'] []

Довідка

Q148. Що поверне цей рядок коду? (Припустімо, n вже визначено як будь-яке додатне ціле число.)

[x*2 for x in range(1,n)]
  • Список з усіма парними числами менше 2*n.
  • Словник з усіма парними числами менше 2*n.
  • Список з усіма непарними числами менше 2*n.
  • Список з усіма парними числами менше або дорівнює 2*n.

Довідка

Q149. Що друкує цей код у консолі?

x = 18

if x > 10:
	if x > 15:
		print('A')
	else:
		print('B')
else:
	print('C')
  • C
  • A B
  • B
  • A

Q150. Яка максимальна довжина ідентифікатора Python?

  • 32
  • 16
  • 128
  • Не вказано фіксованої довжини.

довідка

Q151. Яким буде значення змінної i, коли наступний цикл завершить своє виконання?

for i in range(5): pass
  • 5
  • Змінна стає недоступною.
  • 6
  • 4

Q152. f-strings також називаються:

  • Форматовані рядкові вирази.
  • Функціональні рядки.
  • Рядки з форматуванням modulo.
  • Форматовані рядкові літерали.

Q153. Скільки процесорів (або ядер) бібліотека Python threading використовуватиме одночасно?

  • Один.
  • Всі доступні процесори.
  • Два.
  • Три.

Q154. Яким буде значення y у цьому коді?

x = 5
y = 1 + (20 if x < 5 else 30)
  • False
  • 21
  • 2
  • 31

Довідка

Q155. Процес pickling у Python включає?

  • Перетворення ієрархії об'єктів Python у потік байтів.
  • Перетворення таблиці даних у список.
  • Перетворення потоку байтів в ієрархію об'єктів Python.
  • Перетворення списку в таблицю даних.

довідка

Q156. Який вивід наступної програми?

print("codescracker".endswith("er"))
  • True
  • 1
  • 2
  • False

Q157. Чи є список змінним у Python?

  • True
  • False

Q158. Який вивід наступної програми?

print("programming".center())
  • cr
  • programming
  • Помилка TypeError: center expected at least 1 argument, got 0.
  • Жоден з наведених вище.

довідка

Q159. Хто створив мову програмування Python?

  • Tim Berners-Lee
  • Ada Lovelace
  • Guido van Rossum
  • Alan Turing

Q160. Яка колекція є впорядкованою, змінною та дозволяє дублікати елементів?

  • Set
  • Tuple
  • Dictionary
  • List

Q161. Що буде надруковано в консолі, якщо ви запустите цей код?

x = 1j
print(x**2 == -1)
  • Помилка виконання, що повідомляє, що змінна j не була ініціалізована.
  • True
  • 1j
  • False

Q162. Що буде надруковано в консолі, якщо ви запустите цей код?

print(0xA + 0xB + 0xC)
  • 33
  • 63
  • 0xA + 0xB + 0xC
  • None

Q163. Що виведе цей код на екран?

for i in range(5):
    print(i)
else:
    print("Done!")
  • A: 1 2 3 4 5 Done!
  • B: 0 1 2 3 4 5 Done!
  • C: 0 1 2 3 4 Done!
  • D: Ви отримаєте синтаксичну помилку.

Q164. Яке порівняння списків і кортежів у Python є правильним?

  • Використовуйте списки замість кортежів, коли у вас є колекція пов'язаних, але різних об'єктів.
  • Використовуйте кортежі замість списків, коли у вас є загальна колекція подібних об'єктів.
  • Використовуйте кортежі замість списків для функцій, які повинні повертати кілька значень.
  • Використовуйте списки замість кортежів, коли позиція елементів важлива.

Довідка

Q165. Розгляньте наступний фрагмент коду, який використовує декоратори для обчислення часу виконання функції execution_fn. Які відсутні аргументи?

import functools
import time

def timer(MISSING_ARG_1):
    @functools.wraps(func)
    def wrapper(*args, **kwargs):
        start_time = time.perf_counter()
        rval = func(*args, **kwargs)
        end_time = time.perf_counter()
        duration = end_time - start_time
        print(f"Executed in {duration:.4f} seconds")
        return MISSING_ARG_2
    return MISSING_ARG_3
  • : MISSING_ARG_1 = wrapper, MISSING_ARG_2 = rval, MISSING_ARG_3 = func
  • : MISSING_ARG_1 = func, MISSING_ARG_2 = rval, MISSING_ARG_3 = wrapper
  • : MISSING_ARG_1 is empty, MISSING_ARG_2 = rval, MISSING_ARG_3 = wrapper
  • : MISSING_ARG_1 is empty, MISSING_ARG_2 = rval, MISSING_ARG_3 = func

Q166. Яке з наступних тверджень визначає новий тип об'єкта під назвою Dog у Python?

  • class Dog:
  • Dog class:
  • Dog:
  • class Dog

Q167. Для використання конвеєрів у scikit-learn, імпортуйте з підмодуля scikit-learn._.

  • preprocessing
  • pipeline
  • filters
  • pipe_filter

довідка

Q168. Ви повинні передати значення _ для аргументу axis методу Pandas apply, щоб застосувати функцію до кожного рядка.

  • row
  • col
  • 1
  • 0

Q169. Точки даних у Pyplot називаються...

  • ... pointers.
  • ... points.
  • ... markers.
  • ... жоден з цих.

Q170. Що друкує цей код?

a = np.array([[1, 2], [3, 4], [5, 6]])
c = a[(a > 3) & (a < 11)]
print(c)
  • [[3, 4], [5, 6]]
  • [False, False, False, True, True, True]
  • [[0,0], [3, 4], [5, 6]]
  • [4 5 6]

Q171. Припустімо, m, n і p є додатними цілими числами. У наступному comprehension, скільки разів буде викликана функція randint?

[ [ [ randint(1,100) for i in range(m) ] for j in range(n) ] for k in range(p) ]
  • m * n * p
  • Більше значення з (m,n,p).
  • 1 мільйон.
  • m + n + p

Q172. Припустімо, у вас є клас під назвою MyClass, який має множинне успадкування та методи з однаковими іменами в його предках. Який метод класу ви могли б викликати, щоб побачити, який метод отримає пріоритет при виклику?

  • MyClass.__mro__
  • MyClass.hierarchy()
  • callable(MyClass)
  • dir(MyClass)

Q173. Припустімо, у вас є список співробітників, описаний кодом нижче. Ви хочете призначити Alice таку саму зарплату, як у Charlie. Який вибір це зробить?

employees = {
    'alice':{
        'position':'Lead Developer',
        'salary':1000
    },
    'bob':{
        'position': 'Lead Artist',
        'salary':2000
    },
    'charlie':{
        'position':'cfo',
        'salary':3000
    }
}
  • employees['alice']['salary'] = employees['charlie']['salary']
  • employees.alice.salary = employees.charlie.salary
  • employees['alice'][1] = employees['charlie'][1]
  • employees['alice'].salary = employees['charlie'].salary

Q174. Вам надано цей фрагмент коду. Припустімо, m і n вже визначені як деякі додатні цілі значення. Коли він завершиться, скільки кортежів міститиме mylist?

mylist = []

for i in range(m):
    for j in range(n):
        mylist.append((i,j))
  • m
  • m + n
  • n
  • m * n

Q175. Що надасть вам цей comprehension?

{x : [y for y in range (1, x) if x % y == 0] for x in range (2, 100)}
  • Словник, ключами якого є числа від 2 до 99 (включно), а їх відповідні значення - їх дільники.
  • Словник, ключами якого є числа від 2 до 99 (включно), а їх відповідні значення - список від 1 до самого ключа (включно).
  • Словник, ключами якого є числа від 2 до 99 (включно), а їх відповідні значення - парні числа від 1 до самого ключа (включно).
  • Словник, ключами якого є числа від 2 до 99 (включно), а їх відповідні значення - непарні числа від 1 до самого ключа (включно).

Q176. Яке поширене використання бібліотеки sys Python?

  • зробити знімок усіх пакетів і бібліотек у вашому віртуальному середовищі
  • з'єднати різні системи, такі як веб-інтерфейс, API-сервіс, базу даних і мобільний додаток
  • захопити аргументи командного рядка, надані під час виконання файлу
  • сканувати стан вашої екосистеми Python всередині віртуального середовища

Q177. Який вивід 17 % 15?

  • 17
  • 15
  • 2
  • 16

Q178. Нехай списки 'characters' і 'actors' визначені як задано. Який з наступних рядків коду дає бажаний вивід?

characters = ["Iron Man", "Spider Man", "Captain America"]
actors = ["Downey", "Holland", "Evans"]

#Desired output : [("Iron Man", "Downey"), ("Spider Man", "Holland"), ("Captain America", "Evans")]
  • print( zip( characters, actors ) )
  • print( { x: y for x in characters for y in actors } )
  • print( [ ( x, y ) for x in characters for y in actors ] )
  • print( list( zip( characters, actors ) ) )

Q179. Коли виконується блок if __name__ == "__main__": у Python-скрипті?

  • Завжди, оскільки він потрібен у кожному Python-скрипті.
  • Тільки коли скрипт виконується безпосередньо з командного рядка або як основна програма.
  • Тільки коли скрипт містить синтаксичні помилки.
  • Тільки коли скрипт імпортується як модуль в іншому скрипті.

довідка

Q180. Який буде вивід наступного коду Python?

def square(x):
	return x * x

numbers = [1, 2, 3, 4, 5]
squared_numbers = map(square, numbers)
result = list(squared_numbers)
print(result)
  • [1, 4, 9, 16, 25]
  • [1, 2, 3, 4, 5]
  • [1, 8, 27, 64, 125]
  • [2, 4, 6, 8, 10]

довідка

Q181. Яка з наступних НЕ є дійсною вбудованою функцією в Python?

  • int
  • string
  • boolean
  • array

Джерело

Q182. Який з наступних НЕ є дійсним типом даних Python?

  • int
  • char
  • float
  • str

Q183. У Python, яка функція використовується для читання рядка з консольного введення?

  • input()
  • read_line()
  • console_input()
  • getline()

Довідка

Q184. Який буде вивід наступного коду Python?

print("Hello {name1} and {name2}".format(name1='foo', name2='bin'))

  • Hello foo and bin
  • Hello {name1} and {name2}
  • Error
  • Hello and

Q185. Який буде вивід наступного фрагмента коду?

def outer_func(x):
    y = x + 1
    def inner_func():
        return y + x
    return inner_func

x = 10
y = 20
closure_func = outer_func(x)
print(closure_func())
  • 30
  • 21
  • 11
  • 31

Q186. Який вивід наступного коду Python?

x = 5
def func():
    x = 10
    print(x)
func()
print(x)
  • 10, 5
  • 10, 10
  • 5, 5
  • 5, 10

Q187. Який вивід наступного коду Python?

def func(a, b=2, c=3):
    print(a, b, c)

func(10)
func(10, 20)
func(10, 20, 30)
  • 10 2 3, 10 20 3, 10 20 30
  • 10 2 3, 10 2 3, 10 2 3
  • 10 2 3, 10 20 2, 10 20 30
  • 10 2 3, 10 20 3, 10 20 30

Q188. Який вивід наступного коду Python?

x = [1, 2, 3]
y = x
y.append(4)
print(x)
  • [1, 2, 3]
  • [1, 2, 3, 4]
  • [4, 1, 2, 3]
  • Error

Q189. Який вивід наступного коду Python?

def add_item(item, item_list=[]):
    item_list.append(item)
    return item_list

print(add_item(1))
print(add_item(2))
print(add_item(3, []))
  • [1] [2] [3]
  • [1] [1,2] [3]
  • [1,2,3] [1,2,3] [3]
  • [1] [2] [3,1,2]

Q190. Який метод використовується для реалізації функції len() для користувацького класу?

  • __length__()
  • __len__()
  • __size__()
  • __count__()

Довідка

Q191. Що виведе цей код?

def decorator(func):
    def wrapper(*args, **kwargs):
        print("Before function call")
        result = func(*args, **kwargs)
        print("After function call")
        return result
    return wrapper

@decorator
def greet(name):
    print(f"Hello, {name}!")

greet("Alice")
  • Before function call, Hello, Alice!, After function call
  • Hello, Alice!
  • Before function call, After function call
  • decorator

Довідка

Q192. Яке твердження про генератори Python є правильним?

  • Генератори зберігають всі значення в пам'яті одночасно
  • Генератори виробляють значення за запитом, використовуючи ключове слово yield
  • Генератори можуть бути створені тільки за допомогою list comprehensions
  • Генератори не можуть бути ітеровані кілька разів

Довідка

Q193. Який вивід цього коду?

class Parent:
    def method(self):
        print("Parent method")

class Child(Parent):
    def method(self):
        super().method()
        print("Child method")

obj = Child()
obj.method()
  • Parent method, Child method
  • Child method, Parent method
  • Child method
  • Parent method

Довідка

Q194. Який метод використовується для реалізації рядкового представлення для налагодження?

  • __str__()
  • __repr__()
  • __format__()
  • __debug__()

Довідка

Q195. Що виведе цей код?

from functools import lru_cache

@lru_cache(maxsize=None)
def fibonacci(n):
    if n < 2:
        return n
    return fibonacci(n-1) + fibonacci(n-2)

print(fibonacci(10))
print(fibonacci.cache_info())
  • 55 і статистику кешу
  • 55 і None
  • RecursionError
  • TypeError

Довідка

Q196. Яке твердження про оператор with Python є правильним?

  • Він може використовуватися тільки з файловими об'єктами
  • Він забезпечує належне очищення ресурсів, викликаючи метод __exit__
  • Він створює нову область видимості для змінних
  • Він може використовуватися тільки один раз на програму

Довідка

Q197. Який вивід цього коду?

class Counter:
    def __init__(self):
        self.count = 0

    def __call__(self):
        self.count += 1
        return self.count

counter = Counter()
print(counter())
print(counter())
print(counter.count)
  • 1, 2, 2
  • 0, 1, 2
  • 1, 1, 1
  • TypeError

Довідка

Q198. Який метод використовується для реалізації оператора in для користувацького класу?

  • __in__()
  • __contains__()
  • __has__()
  • __includes__()

Довідка

Q199. Що виведе цей код?

from dataclasses import dataclass

@dataclass
class Point:
    x: int
    y: int

    def distance_from_origin(self):
        return (self.x ** 2 + self.y ** 2) ** 0.5

p = Point(3, 4)
print(p)
print(p.distance_from_origin())
  • Point(x=3, y=4) і 5.0
  • <Point object> і 5.0
  • Point(3, 4) і 5
  • SyntaxError

Довідка

Q200. Яке твердження про Global Interpreter Lock (GIL) Python є правильним?

  • GIL дозволяє справжній паралелізм для завдань, прив'язаних до CPU
  • GIL запобігає одночасному виконанню Python-байткоду кількома рідними потоками
  • GIL впливає тільки на операції вводу-виводу
  • GIL може бути вимкнений у Python

Довідка

Q201. Який вивід цього коду?

class Singleton:
    _instance = None

    def __new__(cls):
        if cls._instance is None:
            cls._instance = super().__new__(cls)
        return cls._instance

a = Singleton()
b = Singleton()
print(a is b)
print(id(a) == id(b))
  • True і True
  • False і False
  • True і False
  • False і True

Довідка

Q202. Який метод використовується для реалізації протоколу ітерації?

  • __iterate__()
  • __iter__() і __next__()
  • __loop__()
  • __foreach__()

Довідка

Q203. Що виведе цей код?

from enum import Enum

class Color(Enum):
    RED = 1
    GREEN = 2
    BLUE = 3

print(Color.RED)
print(Color.RED.name)
print(Color.RED.value)
  • Color.RED, RED, 1
  • 1, RED, Color.RED
  • RED, 1, Color.RED
  • <Color.RED: 1>, RED, 1

Довідка

Q204. Яке твердження про *args і **kwargs Python є правильним?

  • *args захоплює іменовані аргументи, **kwargs захоплює позиційні аргументи
  • *args захоплює позиційні аргументи, **kwargs захоплює іменовані аргументи
  • Обидва захоплюють однаковий тип аргументів
  • Вони можуть використовуватися тільки разом

Довідка

Q205. Який вивід цього коду?

class MyClass:
    class_var = 0

    def __init__(self):
        MyClass.class_var += 1
        self.instance_var = MyClass.class_var

a = MyClass()
b = MyClass()
print(a.instance_var, b.instance_var)
print(MyClass.class_var)
  • 1 2 і 2
  • 0 1 і 2
  • 1 1 і 1
  • 2 2 і 2

Довідка

Q206. Який метод використовується для реалізації оператора + для користувацького класу?

  • __plus__()
  • __add__()
  • __sum__()
  • __combine__()

Довідка

Q207. Що виведе цей код?

from collections import namedtuple

Person = namedtuple('Person', ['name', 'age', 'city'])
p = Person('Alice', 30, 'New York')
print(p.name)
print(p[1])
print(p._fields)
  • Alice, 30, ('name', 'age', 'city')
  • Alice, Alice, ['name', 'age', 'city']
  • Person, 30, ('name', 'age', 'city')
  • AttributeError

Довідка

Q208. Яке твердження про lambda функції Python є правильним?

  • Lambda функції можуть містити кілька інструкцій
  • Lambda функції можуть містити тільки один вираз
  • Lambda функції не можуть приймати аргументи
  • Lambda функції швидші звичайних функцій

Довідка