Каким будет результат выполнения кода выше?
Anonymous Quiz
77%
True
6%
False
16%
Syntax Error
2%
Ничего из вышеперечисленного
Объяснение:
В квизе есть ошибка! Конечно, нужно немного знать язык, чтобы её увидеть. Но анализ кода и диагностика проблем — ВАЖНАЯ часть становления крутым разработчиком.
Если вы запустите этот код в Python 3.10 или выше, Python постарается указать вам, что не так с кодом:
Как видите, что-то не так с оператором not в приведённом выше коде.
Можно исправить код так:
Здесь используется != для проверки, что x не равно y.
Другой способ "исправить" этот код — добавить дополнительные скобки:
В этом примере "not y" находится в скобках и сравнивается с x. Оба решения — хороший способ заставить код работать.
В квизе есть ошибка! Конечно, нужно немного знать язык, чтобы её увидеть. Но анализ кода и диагностика проблем — ВАЖНАЯ часть становления крутым разработчиком.
Если вы запустите этот код в Python 3.10 или выше, Python постарается указать вам, что не так с кодом:
>>> x = True
>>> y = False
>>> print(x == not y)
File "<stdin>", line 1
print(x == not y)
^^^
SyntaxError: invalid syntax
Как видите, что-то не так с оператором not в приведённом выше коде.
Можно исправить код так:
>>> x = True
>>> y = False
>>> print(x != y)
True
Здесь используется != для проверки, что x не равно y.
Другой способ "исправить" этот код — добавить дополнительные скобки:
>>> x = True
>>> y = False
>>> print(x == (not y))
True
В этом примере "not y" находится в скобках и сравнивается с x. Оба решения — хороший способ заставить код работать.
Каким будет результат выполнения кода выше?
Anonymous Quiz
35%
Found C++!
51%
C++ not found!
13%
Ничего из вышеперечисленного
Объяснение:
Что же возвращает метод строки
С этим знанием в голове, попробуйте выполнить следующий код:
Как видите, при преобразовании -1 в логическое значение (Boolean), оно возвращается как True.
Поэтому в приведенном выше коде, когда подстрока "C++" отсутствует, метод find() возвращает -1,
что оценивается как True, и поэтому выводится: "Found C++!".
Что же возвращает метод строки
find()
? Самый быстрый способ это узнать — прочитать документацию. Согласно документации по Python, если подстрока не найдена, find() возвращает -1.С этим знанием в голове, попробуйте выполнить следующий код:
print(bool(-1)) # выведет:True
Как видите, при преобразовании -1 в логическое значение (Boolean), оно возвращается как True.
Поэтому в приведенном выше коде, когда подстрока "C++" отсутствует, метод find() возвращает -1,
что оценивается как True, и поэтому выводится: "Found C++!".
Python documentation
Built-in Types
The following sections describe the standard types that are built into the interpreter. The principal built-in types are numerics, sequences, mappings, classes, instances and exceptions. Some colle...
Объяснение:
Так как ни
sum(iterable, start)
— функция sum()
принимает на вход лишь итерируемые объекты, то есть объекты, которые способны возвращать элементы по одномуТак как ни
int
, ни float
таковыми не являются, то у нас здесь ошибкаКаким будет результат выполнения кода выше?
Anonymous Quiz
45%
PlayStation5
2%
5
37%
PlayStation
16%
Error
GIL (Global Interpreter Lock) в Python — это механизм,
Anonymous Quiz
11%
позволяющий нескольким потокам одновременно выполнять код на одном процессоре
8%
позволяющий нескольким потокам одновременно выполнять код на разных процессорах
65%
ограничивающий одновременное выполнение нативного кода только одним потоком
16%
позволяющий контролировать доступ к общим ресурсам с использованием мьютексов
Объяснение:
GIL (Global Interpreter Lock) — это механизм, который не позволяет более чем одному потоку одновременно выполнять нативный код Python
Это создаёт проблемы с производительностью в многопоточных программах, так как потоки не могут выполняться параллельно на разных ядрах процессора
GIL (Global Interpreter Lock) — это механизм, который не позволяет более чем одному потоку одновременно выполнять нативный код Python
Это создаёт проблемы с производительностью в многопоточных программах, так как потоки не могут выполняться параллельно на разных ядрах процессора
Объяснение:
Функция
Функция
func()
реализует рекурсивное вычисление факториала числа n
. Факториал числа определяется как произведение всех натуральных чисел от 1
до n
включительно. Факториал 0
равен 1
по определениюКаким будет результат выполнения кода выше?
Anonymous Quiz
61%
["Python"]
15%
[0, 1, 2, 3, 4]
7%
[]
16%
Ничего из вышеперечисленного
Объяснение:
Первый шаг к пониманию того, что происходит в этом странном коде — это взглянуть на то, что нам говорит PEP 380⁴⁰ об использовании return с yield. Кратко говоря, return expr в генераторе вызывает исключение StopIteration(expr) при выходе из генератора.
В данном случае исключение StopIteration происходит при выполнении функции my_func(), когда используется оператор return. Это исключение перехватывается вызовом функции list() в конце кода.
Когда происходит исключение, значение ["Python"] не возвращается, а функция list() возвращает пустой список.
Если вы хотите получить ["Python"] из этого кода, нужно изменить вызов функции, используя next() и обернув его в обработчик исключений:
Этот код удаляет вызов list(), который автоматически перехватывает исключение StopIteration, и использует функцию next(). Функция next() не перехватывает исключение StopIteration, поэтому необходимо обернуть этот вызов конструкцией try/except, чтобы самостоятельно обработать это исключение. А для получения значения из исключения можно воспользоваться атрибутом value объекта exception.
Первый шаг к пониманию того, что происходит в этом странном коде — это взглянуть на то, что нам говорит PEP 380⁴⁰ об использовании return с yield. Кратко говоря, return expr в генераторе вызывает исключение StopIteration(expr) при выходе из генератора.
В данном случае исключение StopIteration происходит при выполнении функции my_func(), когда используется оператор return. Это исключение перехватывается вызовом функции list() в конце кода.
Когда происходит исключение, значение ["Python"] не возвращается, а функция list() возвращает пустой список.
Если вы хотите получить ["Python"] из этого кода, нужно изменить вызов функции, используя next() и обернув его в обработчик исключений:
def my_func(value):
if value == 5:
return ["Python"]
else:
yield from range(value)
try:
next(my_func(5))
except StopIteration as exception:
print(f"StopIteration пойман! {exception.value = }")
Этот код удаляет вызов list(), который автоматически перехватывает исключение StopIteration, и использует функцию next(). Функция next() не перехватывает исключение StopIteration, поэтому необходимо обернуть этот вызов конструкцией try/except, чтобы самостоятельно обработать это исключение. А для получения значения из исключения можно воспользоваться атрибутом value объекта exception.
Python Enhancement Proposals (PEPs)
PEP 380 – Syntax for Delegating to a Subgenerator | peps.python.org
A syntax is proposed for a generator to delegate part of its operations to another generator. This allows a section of code containing ‘yield’ to be factored out and placed in another generator. Additionally, the subgenerator is allowed to return with ...
Метод readlines() возвращает______
Anonymous Quiz
11%
строку
82%
список строк
5%
список отдельных символов
2%
список целых чисел
Объяснение:
Метод readlines() открывает файл и считывает все строки в виде списка, где каждая строка является элементом этого списка:
Пример:
Если файл example.txt содержит:
То результат выполнения будет:
Таким образом, метод readlines() возвращает список строк (line), где каждая строка файла является элементом этого списка.
Метод readlines() открывает файл и считывает все строки в виде списка, где каждая строка является элементом этого списка:
Пример:
with open('example.txt', 'r') as file:
lines = file.readlines()
print(lines)
Если файл example.txt содержит:
Hello
World
То результат выполнения будет:
['Hello\n', 'World\n']
Таким образом, метод readlines() возвращает список строк (line), где каждая строка файла является элементом этого списка.