701 - 750 Flashcards

1
Q

Что такое метаклассы в Python?

A

В Python классы являются объектами, поэтому они сами должны чем-то генерироваться. Эти конструкции представляют собой своеобразные «классы классов» и называются метаклассами. Примером встроенного метакласса является type.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Как проводится отладка программ на Python?

A

В Python есть модуль pdb. Он позволяет пошагово провести отладку программы. Функция breakpoint() облегчает дебаггинг.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

AsyncIO

A

переключение между сопрограммами происходитлишь тогда, когда сопрограмма ожидает завершения внешней операции. AsyncIO подойдет, если приложение большую часть времени тратит на чтение/запись данных,
а не их обработку, то есть, например, для работы с веб-сокетами.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Какие шаблоны проектирования вы еще знаете?

A

Фабричный метод, абстрактная фабрика, прототип, компоновщик, итератор.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

SQL.FLOAT(size, d)

A

A floating point number. The total number of digits is specified in size. The number of digits after the decimal point is specified in the d parameter.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

SQL.DATETIME(fsp)

A

A date and time combination. Format: YYYY-MM-DD hh:mm:ss. The supported range is from ‘1000-01-01 00:00:00’ to ‘9999-12-31 23:59:59’.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

SQL.DECIMAL(size, d)

A

An exact fixed-point number. The total number of digits is specified in size. The number of digits after the decimal point is specified in the d parameter. The maximum number for size is 65. The maximum number for d is 30.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

SQL.CHAR(size)

A

FIXED length string (can contain letters, numbers, and special characters). The size parameter specifies the column length in characters - can be from 0 to 255.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

SQL.BOOL or SQL.BOOLEAN

A

Zero is considered as false, nonzero values are considered as true.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

SQL.LONGTEXT

A

Holds a string with a maximum length of 4,294,967,295 characters

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

SQL.MEDIUMTEXT

A

Holds a string with a maximum length of 16,777,215 characters

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

SQL.TINYTEXT

A

Holds a string with a maximum length of 255 characters

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

SQL.DATE

A

A date. Format: YYYY-MM-DD. The supported range is from ‘1000-01-01’ to ‘9999-12-31’

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

SQL.YEAR

A

A year in four-digit format. Values allowed in four-digit format: 1901 to 2155.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

SQL.VARCHAR(size)

A

A VARIABLE length string (can contain letters, numbers, and special characters). The size parameter specifies the maximum string length in characters - can be from 0 to 65535

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

SQL.BINARY(size)

A

Equal to CHAR(), but stores binary byte strings. The size parameter specifies the column length in bytes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

SQL.TEXT(size)

A

Holds a string with a maximum length of 65,535 bytes

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

SQL.BIGINT()

A

A large integer. Signed range is from -9223372036854775808 to 9223372036854775807.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

SQL.PARTITION BY

🎯 It is always used inside OVER() clause.

A

used to partition rows of table into groups.
~~~
Window_function ( expression )
Over ( partition by expr [order_clause]
[frame_clause] )
~~~

select challenge_id, h_id, h_name, score, 
   dense_rank() over ( partition by challenge_id order by score desc ) 
       as "rank", from hacker;
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

locals()

A

обновляет и возвращает словарь с переменными и их значениями из текущей локальной области видимости. Если функция вызвана внутри другой функции, то она возвращает также свободные (объявленные вне функции, но используемые внутри неё) переменные.

asd = 1
def func(a=1):
    b = 2
    c = a + b
    x = locals()
    print(x)

func()

Заметьте в словаре нет глобальной переменной 'asd'
👉 {'c': 3, 'b': 2, 'a': 1}
x = locals()
print(x)

{'\_\_name\_\_': '\_\_main\_\_', '\_\_doc\_\_': None, '\_\_package\_\_': None, '\_\_loader\_\_': <_frozen_importlib_external.SourceFileLoader object at 0x0327C2D0>, '\_\_spec\_\_': None, 
'\_\_annotations\_\_': {}, '\_\_builtins\_\_': <module 'builtins' (built-in)>, 
'\_\_file\_\_': 'demo_ref_globals.py', '\_\_cached\_\_': None, 'x'_ {...}}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

SQL.ROW_NUMBER()

A

ranking function that assigns a sequential rank number to each new record in a partition.

In this example, we skipped the PARTITION BY clause, therefore, the ROW_NUMBER() treated the whole result set as a single partition.

SELECT 
   ROW_NUMBER() OVER (
	ORDER BY first_name
   ) row_num,
   first_name, 
   last_name, 
   city
FROM 
   sales.customers;
In this example, we used the PARTITION BY clause to divide the customers into partitions by city. 
The row number was reinitialized when the city changed.

SELECT 
   first_name, 
   last_name, 
   city,
   ROW_NUMBER() OVER (
      PARTITION BY city
      ORDER BY first_name
   ) row_num
FROM 
   sales.customers
ORDER BY 
   city;
22
Q

Чем файл .pyc отличается от .py?

A

Оба файла содержат байткод, но .pyc является компилированной версией файлапитона. Его байткод не зависит от платформы, поэтому он исполняется на всехплатформах, которые поддерживают формат .pyc.

23
Q

issubclass()

A

возвращает True, если указанный класс class является подклассом указанного класса (классов) classinfo (прямым, косвенным или виртуальным). Класс считается подклассом самого себя.

class A: 
    pass

class B(A): 
    pass

print(issubclass (B, A))
👉 True

print(issubclass (A, B))
👉 False
class C: 
    pass

использование кортежа с классами для проверки
print(isinstance (B(), (A, C)))
👉 True

использование записи Union (через побитовое или `|`)
print(isinstance (B(), A | C))))
👉 True
24
Q

isinstance()

A

function returns True if the specified object is of the specified type, otherwise False.

x = isinstance(5, int)

print(x)
👉 Truex = isinstance(5, int)

print(x)
👉 True
Check if "Hello" is one of the types described in the type parameter:
x = isinstance("Hello", (str, float, int, str, list, dict, tuple))

print(x)
👉 True
print(isinstance(2+3j, (int, float, str)))
👉 False
print(isinstance(2+3j, (int, float, str, complex)))
👉 True
print(isinstance(3.4, (int, float)))
👉 True
25
Q

string.swapcase()

A

возвращает копию строки str с прописными символами, преобразованными в строчные и наоборот. Другими словами метод меняет регистр символов в строке str.

x = 'Метод меНяет Регистр символоВ в стрОке'
x.swapcase()
👉 'мЕТОД МЕнЯЕТ рЕГИСТР СИМВОЛОв В СТРоКЕ'

x.swapcase().swapcase()
👉 'Метод меНяет Регистр символоВ в стрОке'
txt = "Hello My Name Is PETER"
x = txt.swapcase()

print(x)
👉 hELLO mY nAME iS peter
26
Q

SQL.SELF JOIN

A

Joining a table with itself.

SELECT
  	p1.country_code,
    p1.size AS size2010,
    p2.size AS size2015
FROM populations AS p1
INNER JOIN populations AS p2
USING(country_code)
WHERE p1.year = p2.year - 5;
SELECT table1.column1 , table1.column2, table2.column1...
FROM table1
CROSS JOIN table2;
27
Q

\b

A

backspace/rubout

print("Test\b")
👉 Tes
28
Q

\n

A

newline

29
Q

\r

A

carriage return (return to left margin)

print("Test\r\r")
👉
30
Q

\t

A

tab

print("Test\t1")
👉 Test	1
31
Q

\v

A

vertical tab (move down one line, on the same column)

32
Q

sys.platform

A

возвращает строку, которая содержит идентификатор платформы, который можно использовать, например, для добавления компонентов, специфичных для платформы.

import sys
print(sys.platform)
win32
if sys.platform.startswith('freebsd'):
    # FreeBSD-specific code here...
elif sys.platform.startswith('linux'):
    # Linux-specific code here...
elif sys.platform.startswith('aix'):
    # AIX-specific code here...
33
Q

sys.argv

A

это список аргументов командной строки, которые причастны к скрипту Python. Показывает путь к скрипту, где он находится.

import sys
print(sys.argv)
👉 ['C:/Users/Viktor/Desktop/Test_2.py']
# test.py
import sys, os

print('Список параметров, переданных скрипту')
print(sys.argv)
print('Исходные байты')
print([os.fsencode(arg) for arg in sys.argv])

Запустим файл test.py следующим образом:

$ python3 argv.py -file test.txt -pi 3.14
👉 Список параметров, переданных скрипту
👉 ['argv.py', '-file', 'test.txt', '-pi', '3.14']
👉 Исходные байты
👉 [b'argv.py', b'-file', b'test.txt', b'-pi', b'3.14']
34
Q

sys.orig_argv

A

возвращает список исходных аргументов командной строки, переданных исполняемому файлу Python.

# test.py
import sys

print('Список параметров, переданных скрипту')
print(sys.orig_argv)
Запустим файл test.py следующим образом:

$ python3 test.py -file test.txt -pi 3.14
👉 Список параметров, переданных скрипту
👉 ['python3', 'test.py', '-file', 'test.txt', '-pi', '3.14']
35
Q

sys.getsizeof(object[, default])

A

возвращает размер объекта object в байтах. Объект может быть любым типом объекта.

def a():
    pass

sys.getsizeof(a)
👉 136
36
Q

BeautifulSoup()

A

reate object, which represents the document as a nested data structure

url = "https://www.limetorrents.lol/"
scr = requests.get(url).text
soup = BeautifulSoup(scr, "lxml")
from bs4 import BeautifulSoup
soup = BeautifulSoup(html_doc, 'html.parser')
37
Q

super(type, object-or-type)

🎯 type - необязательно, тип, от которого начинается поиск объекта-посредника
🎯 object-or-type - необязательно, тип или объект, определяет порядок разрешения метода для поиска

A

возвращает объект объект-посредник, который делегирует вызовы метода родительскому или родственному классу, указанного type типа. Это полезно для доступа к унаследованным методам, которые были переопределены в классе.

class Parent:
  def \_\_init\_\_(self, txt):
    self.message = txt

  def printmessage(self):
    print(self.message)

class Child(Parent):
  def \_\_init\_\_(self, txt):
    super().\_\_init\_\_(txt)

x = Child("Hello, and welcome!")
x.printmessage()

👉 Hello, and welcome!
class A:
    def some_method(self):
        print('some_method A')

class B(A):
    def some_method(self):
        super().some_method()
        print('some_method B')
... 
x = B()
x.some_method()
# some_method A
# some_method
class Computer():
    def \_\_init\_\_(self, computer, ram, ssd):
        self.computer = computer
        self.ram = ram
        self.ssd = ssd

Если создать дочерний класс `Laptop`, то будет доступ к свойству базового класса благодаря функции super().
class Laptop(Computer):
    def \_\_init\_\_(self, computer, ram, ssd, model):
        super().\_\_init\_\_(computer, ram, ssd)
        self.model = model

lenovo = Laptop('lenovo', 2, 512, 'l420')

print('This computer is:', lenovo.computer)              
👉 Вывод

print('This computer has ram of', lenovo.ram)            
👉 This computer is: lenovo

print('This computer has ssd of', lenovo.ssd)            
👉 This computer has ram of 2

print('This computer has this model:', lenovo.model)     
👉 This computer has ssd of 512
38
Q

BeautifulSoup.find_parent() and BeautifulSoup.find_parents()

A

do the opposite of find() and find_all(), they work their way up from bottom the tree, looking at a tag’s (or a string’s) parents.

a_string = soup.find(string="Lacie")
a_string
# u'Lacie'

a_string.find_parents("a")
# [<a class="sister" href="http://example.com/lacie" id="link2">Lacie</a>]

a_string.find_parent("p")
# <p class="story">Once upon a time there were three little sisters; and their names were
#  <a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>,
#  <a class="sister" href="http://example.com/lacie" id="link2">Lacie</a> and
#  <a class="sister" href="http://example.com/tillie" id="link3">Tillie</a>;
#  and they lived at the bottom of a well.</p>

a_string.find_parents("p", class="title")
# []
39
Q

BeautifulSoup.next_element and BeautifulSoup.previous_elements

A

can use these iterators to move forward or backward in the document as it was parsed.

last_a_tag.next_element
# u'Tillie'
for element in last_a_tag.next_elements:
    print(repr(element))
# u'Tillie'
# u';\nand they lived at the bottom of a well.'
# u'\n\n'
# <p class="story">...</p>
# u'...'
# u'\n'
# None
40
Q

BeautifulSoup.find_next_siblings() and .find_next_sibling() and find_previous_siblings() and find_previous_sibling()

A

iterate over the rest of an element’s siblings in the tree.

first_link = soup.a
first_link
# <a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>

first_link.find_next_siblings("a")
# [<a class="sister" href="http://example.com/lacie" id="link2">Lacie</a>,
#  <a class="sister" href="http://example.com/tillie" id="link3">Tillie</a>]

first_story_paragraph = soup.find("p", "story")
first_story_paragraph.find_next_sibling("p")
# <p class="story">...</p>
last_link = soup.find("a", id="link3")
last_link
# <a class="sister" href="http://example.com/tillie" id="link3">Tillie</a>

last_link.find_previous_siblings("a")
# [<a class="sister" href="http://example.com/lacie" id="link2">Lacie</a>,
#  <a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>]

first_story_paragraph = soup.find("p", "story")
first_story_paragraph.find_previous_sibling("p")
# <p class="title"><b>The Dormouse's story</b></p>
41
Q

BeautifulSoup.find_all_next() and find_next() and find_all_previous() and find_previous()

A

iterate over whatever tags and strings that come after it in the document. These methods use .previous_elements to iterate over the tags and strings that came before it in the document.

first_link = soup.a
first_link
# <a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>

first_link.find_all_next(string=True)
# [u'Elsie', u',\n', u'Lacie', u' and\n', u'Tillie',
#  u';\nand they lived at the bottom of a well.', u'\n\n', u'...', u'\n']

first_link.find_next("p")
# <p class="story">...</p>
first_link = soup.a
first_link
# <a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>

first_link.find_all_previous("p")
# [<p class="story">Once upon a time there were three little sisters; ...</p>,
#  <p class="title"><b>The Dormouse's story</b></p>]

first_link.find_previous("title")
# <title>The Dormouse's story</title>
42
Q

sorted(iterable, *, key=None, reverse=False)

🎯 iterable - объект, поддерживающий итерирование
🎯 key=None - пользовательская функция, которая применяется к каждому элементу последовательности
🎯 reverse=False - порядок сортировки

A

function returns a sorted list of the specified iterable object. You can specify ascending or descending order. Strings are sorted alphabetically, and numbers are sorted numerically.

line = 'This is a test string from Andrew'
x = sorted(line.split(), key=str.lower)

print(x)
👉 ['a', 'Andrew', 'from', 'is', 'string', 'test', 'This']
student = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]
x = sorted(student, key=lambda student: student[2])

print(x)
👉 [('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
data = [('red', 1), ('blue', 1), ('red', 2), ('blue', 2)]
x = sorted(data, key=lambda data: data[0])

print(x)
👉 [('blue', 1), ('blue', 2), ('red', 1), ('red', 2)]
a = ("b", "g", "a", "d", "f", "c", "h", "e")
x = sorted(a)

print(x)
👉 ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
a = (1, 11, 2)
x = sorted(a)

print(x)
👉 [1, 2, 11]
from operator import itemgetter
x = sorted(student, key=itemgetter(2,1))

print(x)
👉 [('dave', 10, 3.9), ('kate', 11, 4.1), ('john', 15, 4.1), ('jane', 12, 4.9)]
43
Q

matplotlib.legend(*args, **kwargs, loc=”best”)

A

Place a legend on the Axes.

ax.plot([1, 2, 3], label='Inline label')
ax.legend()
line, = ax.plot([1, 2, 3])
line.set_label('Label via method')
ax.legend()
line1, = ax.plot([1, 2, 3], label='label1')
line2, = ax.plot([1, 2, 3], label='label2')
ax.legend(handles=[line1, line2])
ax.plot([1, 2, 3])
ax.plot([5, 6, 7])
ax.legend(['First line', 'Second line'])
44
Q

BeautifulSoup.find() and BeautifulSoup.find_all()

A

searching the parse tree.

soup.find_all('b')
👉 [<b>The Dormouse's story</b>]
for tag in soup.find_all(re.compile("^b")):
    print(tag.name)
👉 body
👉 b
If you pass in a list, Beautiful Soup will allow a string match against any item in that list. 
This code finds all the <a> tags and all the <b> tags:

soup.find_all(["a", "b"])
👉 [<b>The Dormouse's story</b>,
👉 <a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>,
👉 <a class="sister" href="http://example.com/lacie" id="link2">Lacie</a>,
👉 <a class="sister" href="http://example.com/tillie" id="link3">Tillie</a>
45
Q

BeautifulSoup.text

A

finding the text from the given tag.

url = "https://www.geeksforgeeks.org/"
 
# Fetch raw HTML content
html_content = requests.get(url).text
 
# Now that the content is ready, iterate
# through the content using BeautifulSoup:
soup = BeautifulSoup(html_content, "html.parser")
 
# similarly to get all the occurrences of a given tag
print(soup.find('title').text)
46
Q

BeautifulSoup.title

A

tag to find them all tag (‘title’)

soup = ('html_file', 'html.parser')
print(soup.title)
47
Q

BeautifulSoup.prettify()

A

method will turn a Beautiful Soup parse tree into a nicely formatted Unicode string, with a separate line for each tag and each string.

markup = '<a href="http://example.com/">I linked to <i>example.com</i></a>'
soup = BeautifulSoup(markup)
soup.prettify()
# '<html>\n <head>\n </head>\n <body>\n  <a href="http://example.com/">\n...'

print(soup.prettify())
# <html>
#  <head>
#  </head>
#  <body>
#   <a href="http://example.com/">
#    I linked to
#    <i>
#     example.com
#    </i>
#   </a>
#  </body>
# </html>
print(soup.a.prettify())
# <a href="http://example.com/">
#  I linked to
#  <i>
#   example.com
#  </i>
# </a>
48
Q

BeautifulSoup.string

A

return string attribute is provided by Beautiful Soup.

doc = "<body><b> Hello world </b><body>"
  
# Initialize the object with the document
soup = BeautifulSoup(doc, "html.parser")
  
# Get the b tag
tag = soup.b
  
# Print the string
print(tag.string)

Hello World
doc = "<body><b> Hello world </b><body>"
  
# Initialize the object with the document
soup = BeautifulSoup(doc, "html.parser")
  
# Get the b tag
tag = soup.b
  
# Print the type of string
print(type(tag.string))

<class 'bs4.element.NavigableString'>
49
Q

@contextlib.contextmanager

A

представляет собой декоратор, который можно использовать для определения фабричной функции для оператора контекстных менеджеров with без необходимости создавать класс или отдельные методы __enter__() и __exit__().

Короче можно добавить возможность выхода как в with туда куда надо благодаря этому декоратору.

from contextlib import contextmanager

@contextmanager
def managed_resource(*args, **kwds):
    # Код для выделения ресурса, например:
    resource = acquire_resource(*args, **kwds)
    try:
        yield resource
    finally:
        # Код для освобождения ресурса, например:
        release_resource(resource)

with managed_resource(timeout=3600) as resource:
	# Ресурс освобождается в конце этого блока,
	# Даже если код в блоке вызывает исключение
50
Q

maths.Variance

A

The average of the squared differences from the Mean.