Skip to content

Latest commit

 

History

History
2681 lines (1922 loc) · 116 KB

python-quiz-ua.md

File metadata and controls

2681 lines (1922 loc) · 116 KB

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

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

Пояснення: Використовуйте ''' для початку документації та додайте результат після >>>.

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)
  • Немає. Чергу можна створити лише з нуля.
  • список (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 = ['Яблука', 'Апельсини', 'Банани']
quantities = [5, 3, 4]
prices = [1.50, 2.25, 0.89]

#Бажаний вивід
[('Яблука', 5, 1.50),
('Апельсини', 3, 2.25),
('Банани', 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

>>> [
('Яблука', 5, 1.50),
('Апельсини', 3, 2.25),
('Банани', 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. Яка алгоритмічна парадигма сортування швидким методом?

  • Повернення назад
  • Динамічне програмування
  • Зменшення та завоювання
  • Розділяй і володарюй

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

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

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

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

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

  • set — це впорядкована колекція унікальних елементів. list — це невпорядкована колекція неунікальних елементів.
  • Елементи можна отримати з list, але їх не можна отримати з set.
  • 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

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

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

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

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

  • загальний клас об'єкта з ітерованими полями параметрів
  • загальний клас об'єкта з неітерованими іменованими полями
  • підклас кортежу з неітерованими полями параметрів
  • підклас кортежу з іменованими ітерованими полями
# функція namedtuple приймає наступні аргументи для створення класу
from collections import namedtuple
>>> Point = namedtuple('Point',['x','y'])
>>> point = Point(100, 200)
>>> point
    Point(x=100, y=200)

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

Довідка

Приклад:

class test:
    def __init__(self):
        print('Я прийшов сюди без вашого дозволу, ха -ха')
        pass
t1 = test()
>>> 'Я прийшов сюди без вашого дозволу, ха -ха'

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__, і ви зрозумієте причину. Ви отримаєте помилку на кшталт __init__() takes 0 positional arguments but 1 was given, що означає, що щось передається всередину, навіть якщо це не було явно вказано, а саме екземпляр.

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

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

Довідка Методи класу — це методи, які викликаються на самому класі, а не на конкретному екземплярі об'єкта. Тому вони належать до рівня класу, і всі екземпляри класу поділяють метод класу.

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

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

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

  • def getMaxNum(list_of_nums): # тіло функції тут
  • func get_max_num(list_of_nums): # тіло функції тут
  • func getMaxNum(list_of_nums): # тіло функції тут
  • def get_max_num(list_of_nums): # тіло функції тут

Використання підкреслень як роздільників слів бере свій початок з кінця 1960-х років. Це особливо асоціюється з мовою C, зустрічається в книзі "The C Programming Language" (1978) і контрастує з Pascal case (тип camel case). Однак традиційно цей стиль не мав конкретної назви: стильовий гід мови Python називає його просто "lower_case_with_underscores".[2] У Usenet термін snake_case вперше з'явився в спільноті Ruby у 2004 році,[3] використаний Гевіном Кістнером, який писав: BTW... як ви називаєте цей стиль іменування? snake_case? Так я його називатиму, поки хтось мене не виправить.

Довідка

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

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

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

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

  • 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. Яке з наступних тверджень є ПРАВДИВИМ щодо того, як числові дані будуть організовані в дереві бінарного пошуку?

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

У комп'ютерних науках дерево бінарного пошуку (BST), також відоме як впорядковане або відсортоване бінарне дерево, є структурою даних бінарного дерева з коренем, де ключ кожного внутрішнього вузла більший за всі ключі у відповідному лівому піддереві вузла і менший за ключі в правому піддереві. Довідка

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

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

Декоратори дозволяють обгорнути іншу функцію, щоб розширити її поведінку, не змінюючи її назавжди. Довідка

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

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

Довідка

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

  • A:
def tax(my_float):
    ''' Обчислює податок з продажу на покупку. Приймає float, що представляє підсумок, як аргумент і повертає float, що представляє податок з продажу.'''
    pass
  • B:
def tx(amt):
    ''' Отримує податок на суму.'''
  • C:
def sales_tax(amount):
    ''' Обчислює податок з продажу на покупку. Приймає float, що представляє підсумок, як аргумент і повертає float, що представляє податок з продажу.'''
  • D:
def calculate_sales_tax(subtotal):
    pass

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

  • Не обов'язково змінювати стан елемента, на якому працює алгоритм рекурсії.
  • Ви врешті-решт отримаєте KeyError, коли рекурсивна частина коду вичерпає елементи для рекурсії.
  • Ви отримаєте RuntimeError: максимальна глибина рекурсії перевищена.
  • Функція, що використовує рекурсію, поверне None.

пояснення

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

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

пояснення

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

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

Є дві основні ситуації, коли використовуються mixins: Потрібно надати багато необов'язкових функцій для класу. Потрібно використовувати одну конкретну функцію в багатьох різних класах. Довідка пояснення

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 гарантує, що файл буде закрито, навіть якщо виникне виняток або помилка.

Це гарна практика використовувати ключове слово 'with' при роботі з файловими об'єктами. Перевага полягає в тому, що файл правильно закривається після завершення його блоку, навіть якщо на якомусь етапі виникає виняток. Використання with також набагато коротше, ніж написання еквівалентних блоків try-finally:

>>> f = open('workfile', 'w', encoding="utf-8")
>>> with open('workfile', encoding="utf-8") as f:
    read_data = f.read()
# Ми можемо перевірити, чи файл був автоматично закритий.
>>> f.closed
True

Довідка

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

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

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

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

Існує також ярлик командного рядка для запуску testmod(). Ви можете вказати інтерпретатору Python запустити модуль doctest безпосередньо з бібліотеки стандартів і передати ім'я модуля(ів) у командному рядку: python -m doctest -v example.py Це імпортує example.py як окремий модуль і запустить testmod() на ньому. Зверніть увагу, що це може не працювати правильно, якщо файл є частиною пакета та імпортує інші підмодулі з цього пакета. Довідка навчальне відео

Q67. Що таке лямбда-функція?

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

Довідка

Пояснення:

Лямбда-нотація — це анонімна функція, яка може приймати будь-яку кількість аргументів, але має лише один вираз (тобто не може бути перевантажена). Вона була введена в інших мовах програмування, таких як C++ та Java. Лямбда-нотація дозволяє програмістам "обійти" оголошення функції.

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

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

Довідка

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

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

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

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

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

  • :
def get_next_card():
  # тіло методу тут
  • :
def get_next_card(self):
  # тіло методу тут
  • :
def self.get_next_card():
  # тіло методу тут
  • :
def self.get_next_card(self):
  # тіло методу тут

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-скрипту?

  • -- Це коментар
  • # Це коментар
  • /* Це коментар */
  • // Це коментар

Довідка

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.
  • Ви отримаєте KeyError.
  • Ваш код застрягне в нескінченному циклі.
  • Ви отримаєте WhileLoopError.

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

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

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

  • A:
num_people = 5

if num_people > 10:
    print("У басейні багато людей.")
elif num_people > 4:
    print("У басейні є деякі люди.")
else:
    print("У басейні нікого немає.")
  • B:
num_people = 5

if num_people > 10:
    print("У басейні багато людей.")
if num_people > 4:
    print("У басейні є деякі люди.")
else:
    print("У басейні нікого немає.")
  • C:
num_people = 5

if num_people > 10;
    print("У басейні багато людей.")
elif num_people > 4;
    print("У басейні є деякі люди.")
else;
    print("У басейні нікого немає.")
  • D:
if num_people > 10;
    print("У басейні багато людей.")
if num_people > 4;
    print("У басейні є деякі люди.")
else;
    print("У басейні нікого немає.")

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

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

defaultdict — це контейнер, подібний до словника, який присутній у модулі collections. Функціональність словників і defaultdict майже однакова, за винятком того, що defaultdict ніколи не викликає KeyError. Він надає значення за замовчуванням для ключа, який не існує.

# Function to return a default
# values for keys that are not
# present
def def_value():
    return "Not Present"

# Defining the dict
d = defaultdict(def_value)

Довідка

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?

  • Коли потрібно мінімізувати використання рядків у коді.
  • Коли потрібно виконувати код в одному файлі, поки код в іншому файлі також виконується.
  • Коли потрібно, щоб код продовжував виконуватись, поки деяка умова є істинною.
  • Коли потрібно виконати два або більше фрагментів коду одночасно в одному файлі.
Простий приклад
i = 1
while i<6:
    print('Countdown:',i)
    i = i + 1

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

Пояснення:: Під час створення нового об'єкта з даного класу метод __init__() приймає як attr1, так і attr2, і встановлює їх значення для відповідного атрибута об'єкта, тому потрібно використовувати self.attr1 = attr1 замість attr1 = attr1.

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.
  • Повертає п'ять різних квадратних матриць, заповнених одиницями. Перша — 1x1, друга — 2x2 і так далі до 5x5.
  • Повертає 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.

Довідка Це Set Comprehension, оскільки в '{}', фігурних дужках, тому поверне Set!

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

Пояснення::

y="stuff;thing;junk"
 len(z) ==> 3

y="stuff;thing;junk;"
 len(z) ==> 4

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". Якщо потрібно видалити елемент за індексом, слід використовувати .pop().

num_list = [1,2,3,4,5]

num_list.pop(2)
>>> [1,2,4,5]

num_list.remove(2)
>>> [1,3,4,5]

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)) # виводить 2, піднесене до 10-го ступеня
  • :
print(2^10)
  • :
print(2**10)
  • :
y = [x*2 для x у діапазоні(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"Це число {number}")
  • Це число 3
  • Це число 3
  • ЦЕ ЧИСЛО 3
  • Викине TypeError, оскільки ціле число потрібно привести до рядка.

Довідка

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

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

Довідка

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

  • write('w')
  • scan('s')
  • append('a')
  • read('r')
  1. Довідка
  2. Довідка

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

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

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

  • set
  • list
  • tuple
  • dictionary

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

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

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

my_dictionary = {
    'A': 1,
    'B': 2,
    'C': 3,
    'D': 4,
    'E': 5
}
  • <br>
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 використовуються, щоб продемонструвати рецензентам коду, що ви спробували новий підхід, але якщо новий підхід не відповідає їхнім очікуванням, вони можуть закоментувати все що під ключовим словом 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-скрипту?

  • // Це коментар
  • # Це коментар
  • -- Це коментар
  • /* Це коментар *\

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() і .matmul()
  • linalg.inv() і .dot()
  • linalg.det() і .dot()
  • linalg.inv() і .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 і Matrix
  • Matrix і 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("Привіт, я із", country)

myFunction("Іспанії")
myFunction("")
myFunction()
  • :
Привіт, я із Іспанії
Привіт, я із
Привіт, я із
  • :
Привіт, я із Франції
Привіт, я із Франції
Привіт, я із Франції
  • :
Привіт, я із Іспанії
Привіт, я із
Привіт, я із Франції
  • :
Привіт, я із Іспанії
Привіт, я із Франції
Привіт, я із Франції

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

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

Довідка

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

Q129

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

Пояснення: titanic['Survived'] повертає об'єкт pandas.Series, який містить стовпець Survived з DataFrame. Додавання значень цього стовпця (тобто sum(titanic['Survived'])) повертає загальну кількість тих, хто вижив, оскільки виживання позначається 1, а втрата — 0.

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

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

# example output : [("IronMan", "Downey"), ("Spider Man", "Holland"), ("Captain America", "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 Similarity, що визначає схожість двох множин? Вона визначається як відношення кількості елементів перетину до кількості елементів об'єднання. Який варіант є точною реалізацією на Python?

Q132

  • 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

() - порожній параметр. self - посилається на всі екземпляри в класі. _init_ - зарезервований метод, також відомий як конструктор. _init_() - завжди виконується під час ініціалізації класу.

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

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

Довідка

Пояснення: Оператор from..import дозволяє імпортувати конкретні функції/змінні з модуля замість імпорту всього.

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 для _ даних

  • рядкових; числових

  • неструктурованих; структурованих

  • числових; табличних

  • табличних; числових

  • Пояснення: Бібліотека Pandas зазвичай використовується для роботи з табличними даними, такими як дані у вигляді таблиць або електронних таблиць. Вона надає структури даних і функції для маніпуляції та аналізу даних. З іншого боку, NumPy — це потужна бібліотека для числових обчислень у Python, і її часто використовують для виконання математичних операцій над числовими даними, такими як масиви та матриці.

Q137. Що потрібно зробити для встановлення додаткових пакетів у Python?

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

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

Q132

  • 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)

Пояснення: Можна використовувати оператор break, і значення, яке шукається, може бути першим елементом списку, враховуючи, що він непорожній.

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('Матриці можна помножити!')
        return True
    else:
        return False
  • columnsMat1; rowsMat1;
  • columnsMat1; rowsMat2;
  • columnsMat1; columnsMat2;
  • columnsMat2; rowsMat1;

довідка. Матрицю можна множити на будь-яку іншу матрицю, яка має таку саму кількість рядків, як і перші стовпці. Тобто матрицю з 2 стовпцями можна множити на будь-яку матрицю з 2 рядками.

Q144. Який результат цього виразу?

[(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
        self.name = name

    def introduce(self):
        print("My name is", self.name, "son of", self.fathername)

king = Person("Joffrey")
king.introduce()
  • :
class Father():
    name = 'Robert'


class Person(Father):
    def __init__(self, name):
        self.fathername = self.name
        self.name = name

    def introduce(self):
        print("My name is", self.name, "son of", self.fathername)


king = Person("Joffrey")
king.introduce()
  • :
class Father():
    name = 'Robert'


class Person(Father):
    def __init__(self, name):
        self.name = name

    def introduce(self):
        print("My name is", self.name, "son of", super.name)

king = Person("Joffrey")
king.introduce()
  • :
class Father():
    name = 'Robert'

class Person(Father):
    def __init__(self, name):
        self.name = name

    def introduce(self):
        print("My name is", self.name, "son of", base.name)

king = Person("Joffrey")
king.introduce()

Пояснення: У першому варіанті super не має .name (має бути self.name). У третьому варіанті пропущено Robert, а в четвертому base не визначено.

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']
      # буде викинуто виняток
  • C
      ['beetle', 'bear', 'bat']
      None
  • D
      ['bat', 'bear', 'beetle']
      []

Пояснення: Зазвичай словники викликають виняток при використанні синтаксису квадратних дужок. Defaultdict тут повертає значення за замовчуванням, визначене першим параметром, тому замість викидання винятку вони повертають типове значення. Зверніть увагу, що це потрібно імпортувати так: from collections import defaultdict

Довідка

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
  • Фіксована довжина не вказана.

довідка Фіксована довжина не вказана, але Pep-8 вказує під "Максимальна довжина рядка" "Обмежити всі рядки до максимуму 79 символів".

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

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

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

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

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

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

Пояснення:: Потоки Python обмежені одним процесором одночасно. Бібліотека multiprocessing дозволить запускати код на різних процесорах.

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

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

Довідка

Пояснення: Якщо є лише одна інструкція для виконання, одна для if і одна для else, її можна розмістити на одному рядку.

x = 5
# Це те саме твердження, що розширюється до декількох рядків
y = 1
if (x < 5):
    y += 20
else:
    y += 30

Q155. Процес серіалізації (pickling) у Python включає?

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

довідка

“Pickling” — це процес, під час якого ієрархія об'єктів Python перетворюється на байтовий потік, а “unpickling” — це зворотна операція, під час якої байтовий потік (з бінарного файлу або об'єкта, схожого на байти) перетворюється назад в ієрархію об'єктів.

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

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

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

  • Так
  • Ні

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

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

довідка. Метод center() вирівнює рядок по центру, використовуючи вказаний символ (пробіл за замовчуванням) як заповнювач. Синтаксис: string.center(length, character), де length є обов'язковим!

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

  • Тім Бернерс-Лі
  • Ада Лавлейс
  • Гвідо ван Россум
  • Алан Тюрінг

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

  • Множина (Set)
  • Кортеж (Tuple)
  • Словник (Dictionary)
  • Список (List)

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

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

Пояснення: Літера j в Python позначає уявну одиницю, тому x**2 означає j**2, що дорівнює -1. Вираз x**2 == -1 оцінюється як True.

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

print(0xA + 0xB + 0xC)
  • 33
  • 63
  • 0xA + 0xB + 0xC
  • Нічого

Пояснення: A, B і C — це шістнадцяткові числа зі значеннями 10, 11 і 12 відповідно, тому сума A, B і C дорівнює 33.

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

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

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

@timer
def execution_fn():
    for i in range(3):
        time.sleep(1)

execution_fn()

Які з наступних варіантів є відсутніми аргументами?

  • :
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

довідка Правильний синтаксис: from sklearn.pipeline import Pipeline

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

  • рядок
  • стовпець
  • 1
  • 0

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

  • ... вказівники.
  • ... точки.
  • ... маркери.
  • ... нічого з вищезазначеного.

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 — це додатні цілі числа. Скільки разів буде викликана функція 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)

Пояснення: MRO означає порядок вирішення методів. Він повертає список типів, від яких походить клас, у порядку, в якому вони шукаються для методів.

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

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

Пояснення: Це доступ до ключа в словнику, вкладеному в інший словник. Команда employees['alice']['salary'] = employees['charlie']['salary'] призначає значення ключа salary в словнику співробітника charlie значенню ключа salary в словнику співробітника alice.

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

mylist = []

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

Пояснення: Цей код виконуватиметься m x n разів. Якщо запустити цей код, він створить m x n кортежів.

Перший цикл виконується m разів, а внутрішній цикл - n разів. Одна ітерація першого циклу завершиться лише тоді, коли всі n ітерацій внутрішнього циклу будуть завершені. Це той самий процес для 2-го, 3-го, ... m-го ітерацій зовнішнього циклу. Загалом обидва цикли виконуватимуться m x n разів.

Q175. Що надасть цей вираз?

{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. Яке поширене використання бібліотеки Python sys?

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

Q177. Який результат 17 % 15?

  • 17
  • 15
  • 2
  • 16

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

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

# Приклад: [("Iron Man", "Downey), ("Spider Man", "Holland"), ("Captain America", "Evans")]
  • zip (characters, actors)
  • {x:y for x in characters for y in actors}
  • [(x,y) for x in characters for y in actors]
  • ­
d = {}
for x in range(1, len(characters)):
    d[x] = actors [x]

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

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

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

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

Блок if __name__ == "__main__": виконується, коли скрипт запускається безпосередньо, але не коли він імпортується як модуль в інший скрипт. довідка

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

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]

Код визначає функцію square для обчислення квадрата числа. Потім використовується функція map, щоб застосувати цю функцію до кожного елемента списку numbers, що призводить до створення нового ітератора. Нарешті, конструктор list використовується для перетворення цього ітератора в список. Результатом буде список квадратів чисел. довідка

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

  • int
  • string
  • boolean
  • array

джерело

Q183. Який з наступних варіантів не є дійсним типом даних у Python?

  • int
  • char
  • float
  • str

Q184. Яка функція використовується в Python для зчитування рядка з консолі інпута?

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

довідка

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

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

  • Hello foo and bin
  • Hello {name1} and {name2}
  • Помилка
  • Hello and