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'
None
.if/else
, які використовуються для перевірки рівності між об’єктами.Пояснення: Атрибути визначаються під класом, а аргументи — під функціями. Аргументи зазвичай стосуються параметрів, тоді як атрибути є конструкторами класу або екземпляра класу.
count, fruit, price = (2, 'apple', 3.5)
.delete()
pop(my_list)
del(my_list)
.pop()
my_list = [1,2,3]
my_list.pop(0)
my_list
>>>[2,3]
sys
у Python?class Game(LogicGame): pass
def Game(LogicGame): pass
def Game.LogicGame(): pass
class Game.LogicGame(): pass
Пояснення: Батьківський клас, який успадковується, передається як аргумент дочірньому класу. Тому тут правильна відповідь — перший варіант.
def sum(a, b):
"""
sum(4, 3)
7
sum(-4, 5)
1
"""
return a + b
def sum(a, b):
"""
>>> sum(4, 3)
7
>>> sum(-4, 5)
1
"""
return a + b
def sum(a, b):
"""
# >>> sum(4, 3)
# 7
# >>> sum(-4, 5)
# 1
"""
return a + b
def sum(a, b):
###
>>> sum(4, 3)
7
>>> sum(-4, 5)
1
###
return a + b
Пояснення: Використовуйте '''
для початку документації та додайте результат після >>>
.
set
list
None
dictionary
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')]
self
означає, що не потрібно передавати інші аргументи в метод.self
не має реальної мети; це просто історичний термін у комп’ютерних науках, який Python зберігає для узгодженості з іншими мовами програмування.self
відноситься до екземпляра, метод якого був викликаний.self
відноситься до класу, від якого успадковується об’єкт за допомогою self
.Простий приклад
class my_secrets:
def __init__(self, password):
self.password = password
pass
instance = my_secrets('1234')
instance.password
>>>'1234'
namedtuple
і звертатися до них так само, як до ключів у dictionary
.tuple
.namedtuples
такі ж ефективні за пам’яттю, як і звичайні tuples
.namedtuples
, оскільки вони доступні в стандартній бібліотеці.Необхідно імпортувати за допомогою: from collections import namedtuple
None
.my_game = class.Game()
my_game = class(Game)
my_game = Game()
my_game = Game.create()
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]
None
.True
.Довідка. Коли оператор return є None
, або немає значення, або відсутній оператор return, функція повертає None
.
pass
у Python?yield
генератора та повернення значення None.while
або for
і повернення на початок циклу.Оператор pass використовується як заповнювач для майбутнього коду. Коли виконується оператор pass, нічого не відбувається, але ви уникаєте помилки, коли порожній код не дозволений. Довідка
слот
(slot)словник
(dictionary)черга
(queue)відсортований список
(sorted list)fruits = ['Яблука', 'Апельсини', 'Банани']
quantities = [5, 3, 4]
prices = [1.50, 2.25, 0.89]
#Бажаний вивід
[('Яблука', 5, 1.50),
('Апельсини', 3, 2.25),
('Банани', 4, 0.89)]
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
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
groceries = zip(fruits, quantities, prices)
return groceries
>>> [
('Яблука', 5, 1.50),
('Апельсини', 3, 2.25),
('Банани', 4, 0.89)
]
i = 0
output = []
for fruit in fruits:
for qty in quantities:
for price in prices:
output.append((fruit, qty, price))
i += 1
return output
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'
(Формат відповіді може відрізнятися. Game і roll (або dice_roll) повинні бути викликані без параметрів.)
>>> dice = Game()
>>> dice.roll()
>>> dice = Game(self)
>>> dice.roll(self)
>>> dice = Game()
>>> dice.roll(self)
>>> dice = Game(self)
>>> dice.roll()
І сортування злиттям, і швидке сортування використовують загальну алгоритмічну парадигму, засновану на рекурсії. Ця парадигма, розділяй і володарюй, розбиває проблему на підпроблеми, подібні до вихідної проблеми, рекурсивно вирішує підпроблеми та, нарешті, об’єднує рішення підпроблем для вирішення вихідної проблеми. Довідка
.append()
?Ця функція має постійну складність часу, тобто O(1), оскільки списки мають випадковий доступ, тому останній елемент можна досягти за час O(1), тому час, необхідний для додавання нового елемента в кінець списку, дорівнює O(1).
set
і list
?set
— це впорядкована колекція унікальних елементів. list
— це невпорядкована колекція неунікальних елементів.list
, але їх не можна отримати з set
.set
— це впорядкована колекція неунікальних елементів. list
— це невпорядкована колекція унікальних елементів.set
— це невпорядкована колекція унікальних елементів. list
— це впорядкована колекція неунікальних елементів.Абстракція в Python визначається як процес обробки складності шляхом приховування непотрібної інформації від користувача. Довідка
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 1
a 2
a 3
b 1
b 2
b 3
c 1
c 2
c 3
['a', 'b', 'c'], [1, 2, 3]
aaa
bbb
ccc
111
222
333
a 1 2 3
b 1 2 3
c 1 2 3
def sum(a, b):
# a = 1
# b = 2
# sum(a, b) = 3
return a + b
def sum(a, b):
"""
a = 1
b = 2
sum(a, b) = 3
"""
return a + b
def sum(a, b):
"""
>>> a = 1
>>> b = 2
>>> sum(a, b)
3
"""
return a + b
def sum(a, b):
'''
a = 1
b = 2
sum(a, b) = 3
'''
return a + b
Пояснення: Використовуйте """
для початку та завершення рядка документації та використовуйте >>>
для представлення результату. Якщо ви правильно це напишете, ви також можете запустити doctest за допомогою вбудованого модуля doctest.
# функція 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
&&
=
==
||
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
5 != 6
yes
False
True
None
Пояснення: У Python !=
еквівалентно не дорівнює.
__init__()
?Приклад:
class test:
def __init__(self):
print('Я прийшов сюди без вашого дозволу, ха -ха')
pass
t1 = test()
>>> 'Я прийшов сюди без вашого дозволу, ха -ха'
Скільки мікропроцесорів знадобиться для виконання вашого коду менш ніж за одну секунду
Скільки рядків коду у вашому файлі
Кількість пам'яті, яку займає програма, як функція від розміру вхідних даних
Скільки копій файлу коду може поміститися в 1 ГБ пам'яті
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)
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()
self
при визначенні або виклику методів на екземплярі об’єкта?self
відноситься до класу, від якого успадковано об’єкт за допомогою self
.self
. Це просто застарілий термін, який Python зберігає для узгодженості з іншими мовами програмування.self
означає, що не потрібно передавати інші аргументи в метод.self
відноситься до екземпляра, метод якого було викликано.Пояснення: - Спробуйте запустити приклад з Q42 без передачі аргументу self
всередині __init__
, і ви зрозумієте причину. Ви отримаєте помилку на кшталт __init__() takes 0 positional arguments but 1 was given
, що означає, що щось передається всередину, навіть якщо це не було явно вказано, а саме екземпляр.
Довідка Методи класу — це методи, які викликаються на самому класі, а не на конкретному екземплярі об’єкта. Тому вони належать до рівня класу, і всі екземпляри класу поділяють метод класу.
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? Так я його називатиму, поки хтось мене не виправить.
maxValue = 255
max_value = 255
MAX_VALUE = 255
MaxValue = 255
Використовуйте одну велику літеру, слово або слова. Розділяйте слова підкресленнями для покращення читабельності. Довідка
Deque або двостороння черга — це узагальнена версія структури даних черги, яка дозволяє вставляти та видаляти елементи з обох кінців. Довідка
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()
__init__()
, що не приймає параметрів?class __init__(self):
pass
def __init__():
pass
class __init__():
pass
def __init__(self):
pass
У комп’ютерних науках дерево бінарного пошуку (BST), також відоме як впорядковане або відсортоване бінарне дерево, є структурою даних бінарного дерева з коренем, де ключ кожного внутрішнього вузла більший за всі ключі у відповідному лівому піддереві вузла і менший за ключі в правому піддереві. Довідка
Декоратори дозволяють обгорнути іншу функцію, щоб розширити її поведінку, не змінюючи її назавжди. Довідка
def tax(my_float):
''' Обчислює податок з продажу на покупку. Приймає float, що представляє підсумок, як аргумент і повертає float, що представляє податок з продажу.'''
pass
def tx(amt):
''' Отримує податок на суму.'''
def sales_tax(amount):
''' Обчислює податок з продажу на покупку. Приймає float, що представляє підсумок, як аргумент і повертає float, що представляє податок з продажу.'''
def calculate_sales_tax(subtotal):
pass
mixin
?mixin
, щоб визначити цю функціональність.Є дві основні ситуації, коли використовуються mixins: Потрібно надати багато необов’язкових функцій для класу. Потрібно використовувати одну конкретну функцію в багатьох різних класах. Довідка пояснення
Пояснення: Стек використовує підхід останній прийшов — перший пішов.
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
python3 -m doctest <_filename_>
python3 <_filename_>
python3 <_filename_> rundoctests
python3 doctest
Існує також ярлик командного рядка для запуску testmod(). Ви можете вказати інтерпретатору Python запустити модуль doctest безпосередньо з бібліотеки стандартів і передати ім’я модуля(ів) у командному рядку:
python -m doctest -v example.py
Це імпортує example.py як окремий модуль і запустить testmod() на ньому. Зверніть увагу, що це може не працювати правильно, якщо файл є частиною пакета та імпортує інші підмодулі з цього пакета.
Довідка
навчальне відео
Пояснення:
Лямбда-нотація — це анонімна функція, яка може приймати будь-яку кількість аргументів, але має лише один вираз (тобто не може бути перевантажена). Вона була введена в інших мовах програмування, таких як C++ та Java. Лямбда-нотація дозволяє програмістам “обійти” оголошення функції.
def get_next_card():
# тіло методу тут
def get_next_card(self):
# тіло методу тут
def self.get_next_card():
# тіло методу тут
def self.get_next_card(self):
# тіло методу тут
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])
-- Це коментар
# Це коментар
/* Це коментар */
// Це коментар
apple
у списку на рядок orange
?my_list = ['kiwi', 'apple', 'banana']
orange = my_list[1]
my_list[1] = 'orange'
my_list['orange'] = 1
my_list[1] == orange
num_people = 5
if num_people > 10:
print("У басейні багато людей.")
elif num_people > 4:
print("У басейні є деякі люди.")
else:
print("У басейні нікого немає.")
num_people = 5
if num_people > 10:
print("У басейні багато людей.")
if num_people > 4:
print("У басейні є деякі люди.")
else:
print("У басейні нікого немає.")
num_people = 5
if num_people > 10;
print("У басейні багато людей.")
elif num_people > 4;
print("У басейні є деякі люди.")
else;
print("У басейні нікого немає.")
if num_people > 10;
print("У басейні багато людей.")
if num_people > 4;
print("У басейні є деякі люди.")
else;
print("У басейні нікого немає.")
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)
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']
while
?i = 1
while i<6:
print('Countdown:',i)
i = i + 1
__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
.
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
Intersect
; union
|
; &
&
; |
&&
; ||
import numpy as np
np.ones([1,2,3,4,5])
open
. Яке може бути найпростіше рішення?PATH
.PYTHONPATH
.{x for x in range(100) if x%3 == 0}
Довідка Це Set Comprehension
, оскільки в ‘{}’, фігурних дужках, тому поверне Set
!
datetime
dateday
daytime
timedate
def Game(): pass
def Game: pass
class Game: pass
class Game(): pass
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)
a = np.array([1,2,3,4])
print(a[[False, True, False, False]])
{0,2}
[2]
{2}
[0,2,0,0]
z = y.split(';')
len(z)
Пояснення::
y="stuff;thing;junk"
len(z) ==> 3
y="stuff;thing;junk;"
len(z) ==> 4
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]
[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)))
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)
[]
, є _, {}
є _, а ()
є _table = np.array([
[1,3],
[2,4]])
print(table.max(axis=1))
[2, 4]
[3, 4]
[4]
[1,2]
number = 3
print (f"Це число {number}")
Це число 3
Це число 3
ЦЕ ЧИСЛО 3
TypeError
, оскільки ціле число потрібно привести до рядка.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]
write('w')
scan('s')
append('a')
read('r')
set
list
tuple
dictionary
sys.exc_info()
os.system()
os.getcwd()
sys.executable
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)
Пояснення: Перший варіант (правильний) повертає список значень (чисел). Решта варіантів повертають список ключів.
print
. Яку функцію можна використовувати в NumPy, щоб змусити його вивести весь масив?set_printparams
set_printoptions
set_fullprint
setp_printwhole
try/except
використовуються, коли потрібно виконати код, але необхідний спосіб виконати інший код, якщо виникає виняток.try/except
використовуються всередині модульних тестів, щоб модульні тести завжди проходили.try/except
використовуються, щоб продемонструвати рецензентам коду, що ви спробували новий підхід, але якщо новий підхід не відповідає їхнім очікуванням, вони можуть закоментувати все що під ключовим словом except
.try/except
використовуються, щоб жодна з функцій або методів не повертала None
.sys.stdout
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()
додає елемент до множини лише якщо він не існує.
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()
def be_friendly(greet = "How are you!", name):
pass
name
є зарезервованим словом.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)
// Це коментар
# Це коментар
-- Це коментар
/* Це коментар *\
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)
c = [ a[1] * b[1], a[2] * b[2], a[3] * b[3] ]
d = sum(c)
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 = [ a[0] * b[0], a[1] * b[1], a[2] * b[2] ]
d = sum(a) + sum(b)
c = [ a[0] * b[0], a[1] * b[1], a[2] * b[2] ]
d = sum(c)
linalg.eig() і .matmul()
linalg.inv() і .dot()
linalg.det() і .dot()
linalg.inv() і .eye()
Пояснення: Для розв’язання деяких систем рівнянь можна використовувати метод діагоналізації, який включає знаходження власних векторів і власних значень матриці системи та множення пов’язаних матриць.
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)
num_list = [21, 13, 19, 3, 11, 5, 18]
num_list.sort()
num_list[len(num_list) // 2]
Пояснення: //
— це оператор цілочисельного ділення, який виконує звичайну операцію ділення, що повертає найбільше можливе ціле число, менше або рівне результату звичайного ділення. Тут він використовується для знаходження медіани, яка є значенням, що розділяє більшу від меншої половини вибірки даних, шляхом знаходження індексу елемента списку в середині списку. (Це достатньо для списку з непарною кількістю елементів; якби список мав парну кількість елементів, ви б усереднили значення двох середніх елементів, щоб знайти медіанне значення.)
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)
def myFunction(country = "France"):
print("Привіт, я із", country)
myFunction("Іспанії")
myFunction("")
myFunction()
Привіт, я із Іспанії
Привіт, я із
Привіт, я із
Привіт, я із Франції
Привіт, я із Франції
Привіт, я із Франції
Привіт, я із Іспанії
Привіт, я із
Привіт, я із Франції
Привіт, я із Іспанії
Привіт, я із Франції
Привіт, я із Франції
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.
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}
{x : x*x for x in range(1,100)}
x
є ключем, а x
в квадраті — значенням; від 1 до 100.x
є ключем, а x
в квадраті — значенням; від 1 до 99.x
, x
в квадраті); від 1 до 99.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)
[1,2,3] * 3
[3,2,3]
[1, 2, 3, 1, 2, 3, 1, 2, 3]
[3,6,9]
[1,2,3,4]
, яке значення має numbers[-2]
?_init_()
, що не приймає параметрів?def*init*(self): pass
class*init*(self): pass
class*init*(): pass
def*init*(): pass
()
- порожній параметр.
self
- посилається на всі екземпляри в класі.
_init_
- зарезервований метод, також відомий як конструктор.
_init_()
- завжди виконується під час ініціалізації класу.
sin
з бібліотеки math
. Який правильний синтаксис для імпорту лише цієї функції?using math.sin
import math.sin
from math import sin
import sin from math
Пояснення: Оператор from..import
дозволяє імпортувати конкретні функції/змінні з модуля замість імпорту всього.
0
print ("foo" if (256).bit_length() > 8 else "bar")
True
foo
bar
True
.RuntimeError
, якщо не повернути значення.None
.табличних; числових
gcc
або clang
.pip
або conda
.random.uniform(0,50);plt.hist
random.gauss(50,20);plt.hist
random();plt.scatter
random.triangular(0,50);plt.bar
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 (включно).my_object
?my_object.get_shape()
my_object.shape
my_object.dim()
len(my_object)
mylist
, і ви хочете знайти певне значення. Мінімальна кількість порівнянь буде ** і максимальна кількість порівнянь буде **?len(mylist); len(mylist)
1; len(mylist)
2; len(mylist)
0; len(mylist)
Пояснення: Можна використовувати оператор break, і значення, яке шукається, може бути першим елементом списку, враховуючи, що він непорожній.
0
True
None
False
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
довідка. Матрицю можна множити на будь-яку іншу матрицю, яка має таку саму кількість рядків, як і перші стовпці. Тобто матрицю з 2 стовпцями можна множити на будь-яку матрицю з 2 рядками.
[(x, x+1) for x in range(1,5)]
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
не визначено.
animals = {
'a': ['ant', 'antelope', 'armadillo'],
'b': ['beetle', 'bear', 'bat'],
'c': ['cat', 'cougar', 'camel']
}
animals = defaultdict(list, animals)
print(animals['b'])
print(animals['d'])
['beetle', 'bear', 'bat']
[]
['beetle', 'bear', 'bat']
# буде викинуто виняток
['beetle', 'bear', 'bat']
None
['bat', 'bear', 'beetle']
[]
Пояснення: Зазвичай словники викликають виняток при використанні синтаксису квадратних дужок. Defaultdict тут повертає значення за замовчуванням, визначене першим параметром, тому замість викидання винятку вони повертають типове значення. Зверніть увагу, що це потрібно імпортувати так: from collections import defaultdict
n
вже визначено як будь-яке додатне ціле значення.)[x*2 for x in range(1,n)]
x = 18
if x > 10:
if x > 15:
print('A')
else:
print('B')
else:
print('C')
довідка Фіксована довжина не вказана, але Pep-8 вказує під “Максимальна довжина рядка” “Обмежити всі рядки до максимуму 79 символів”.
i
, коли цей цикл завершить своє виконання?for i in range(5): pass
f-рядки
також називаютьсяПояснення:: Потоки Python обмежені одним процесором одночасно. Бібліотека multiprocessing дозволить запускати код на різних процесорах.
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
“Pickling” — це процес, під час якого ієрархія об’єктів Python перетворюється на байтовий потік, а “unpickling” — це зворотна операція, під час якої байтовий потік (з бінарного файлу або об’єкта, схожого на байти) перетворюється назад в ієрархію об’єктів.
print("codescracker".endswith("er"))
True
1
2
False
print("programming".center())
cr
programming
TypeError: center expected at least 1 argument, got 0
.довідка. Метод center()
вирівнює рядок по центру, використовуючи вказаний символ (пробіл за замовчуванням) як заповнювач.
Синтаксис: string.center(length, character)
, де length
є обов’язковим!
x = 1j
print(x**2 == -1)
j
не ініціалізована.True
1j
False
Пояснення: Літера j
в Python позначає уявну одиницю, тому x**2
означає j**2
, що дорівнює -1
. Вираз x**2 == -1
оцінюється як True
.
print(0xA + 0xB + 0xC)
33
63
0xA + 0xB + 0xC
Пояснення: A
, B
і C
— це шістнадцяткові числа зі значеннями 10
, 11
і 12
відповідно, тому сума A
, B
і C
дорівнює 33
.
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 Готово!
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
Dog
у Python?class Dog:
Dog class:
Dog:
class Dog
scikit-learn
, імпортуйте з підмодуля scikit-learn._
preprocessing
pipeline
filters
pipe_filter
довідка Правильний синтаксис: from sklearn.pipeline import Pipeline
apply
, щоб застосувати функцію до кожного рядка?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]
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)
.m + n + p
MyClass
, який має множинне успадкування та методи з однаковими іменами в його предках. Який метод класу можна викликати, щоб побачити, який метод матиме пріоритет при виклику?MyClass.__mro__
MyClass.hierarchy()
callable(MyClass)
dir(MyClass)
Пояснення: MRO означає порядок вирішення методів. Він повертає список типів, від яких походить клас, у порядку, в якому вони шукаються для методів.
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
.
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
разів.
{x : [y for y in range (1, x) if x % y == 0] for x in range (2, 100)}
sys
?characters = ["Iron Man", "Spider Man", "Captain America"]
actors = ["Downey", "Holland", "Evans"]
# Приклад: [("Iron Man", "Downey), ("Spider Man", "Holland"), ("Captain America", "Evans")]
d = {}
for x in range(1, len(characters)):
d[x] = actors [x]
for i in range(5):
print (i)
else:
print("Done!")
1
2
3
4
Done!
0
1
3
4
5
Done!
1
3
4
5
Done!
if __name__ == "__main__":
у Python-скрипті?Блок if __name__ == "__main__":
виконується, коли скрипт запускається безпосередньо, але не коли він імпортується як модуль в інший скрипт.
довідка
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
використовується для перетворення цього ітератора в список. Результатом буде список квадратів чисел.
довідка
print("Hello {name1} and {name2}".format(name1='foo', name2='bin'))