Python: задачки и вопросы
前往频道在 Telegram
Вопросы и задачки для подготовки к собеседованиям и прокачки навыков Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Другие наши проекты: https://tprg.ru/media
显示更多7 125
订阅者
-124 小时
-27 天
-130 天
帖子存档
Объяснение:
Добавление новой информации в существующий файл не перезаписывая его задача распространённая
Для решения этой задачи используйте открытие файла в режиме
'a' (append), который позволяет добавлять информацию в конец файла, не перезаписывая его текущее содержимоеМы используем ______ для добавления данных в файл c:\scores.txt, не удаляя при этом существующее содержимое
Мы используем ______ для добавления данных в файл c:\scores.txt.
Объяснение:
Метод readlines() открывает файл и считывает все строки в виде списка, где каждая строка является элементом этого списка:
Пример:
with open('example.txt', 'r') as file:
lines = file.readlines()
print(lines)
Если файл example.txt содержит:
Hello
World
То результат выполнения будет:
['Hello\n', 'World\n']Таким образом, метод readlines() возвращает список строк (line), где каждая строка файла является элементом этого списка.
Объяснение:
Первый шаг к пониманию того, что происходит в этом странном коде — это взглянуть на то, что нам говорит 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.Объяснение:
Функция
func() реализует рекурсивное вычисление факториала числа n. Факториал числа определяется как произведение всех натуральных чисел от 1 до n включительно. Факториал 0 равен 1 по определениюОбъяснение:
GIL (Global Interpreter Lock) — это механизм, который не позволяет более чем одному потоку одновременно выполнять нативный код Python
Это создаёт проблемы с производительностью в многопоточных программах, так как потоки не могут выполняться параллельно на разных ядрах процессора
GIL (Global Interpreter Lock) в Python — это механизм,
Объяснение:
sum(iterable, start) — функция sum() принимает на вход лишь итерируемые объекты, то есть объекты, которые способны возвращать элементы по одному
Так как ни int, ни float таковыми не являются, то у нас здесь ошибкаОбъяснение:
Что же возвращает метод строки
find()? Самый быстрый способ это узнать — прочитать документацию. Согласно документации по Python, если подстрока не найдена, find() возвращает -1.
С этим знанием в голове, попробуйте выполнить следующий код:
print(bool(-1)) # выведет:True
Как видите, при преобразовании -1 в логическое значение (Boolean), оно возвращается как True.
Поэтому в приведенном выше коде, когда подстрока "C++" отсутствует, метод find() возвращает -1,
что оценивается как True, и поэтому выводится: "Found C++!".
现已上线!2025 年 Telegram 研究 — 年度关键洞察 
