Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
#Круги добра
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Монстрикс — это динамичная стратегия, где ты собираешь, улучшаешь и сражаешься с могучими монстрами.

Монстрикс

Мидкорные, Стратегии, Мультиплеер

Играть

Топ прошлой недели

  • SpongeGod SpongeGod 1 пост
  • Uncleyogurt007 Uncleyogurt007 9 постов
  • ZaTaS ZaTaS 3 поста
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
0 просмотренных постов скрыто
8
Вопрос из ленты «Эксперты»
UltraIamlucky0ne
3 месяца назад

Здравствуйте!⁠⁠

Недавно приобрел себе первый в жизни Ultrawide монитор 43.8", но при серфинге инета обнаружил, что некоторые сайты загружаются на левой стороне экрана, а не по середине. Как отцентровать это? желательно в автоматическом режиме, т.к. кодить не умею от слова совсем.

Здравствуйте! Спроси Пикабу, Вопрос, Компьютерная помощь, Код, Исходный код, Монитор, Экран, Программное обеспечение, Ultrawide, Браузер, Яндекс Браузер, Настройка, IT, Айтишники, Айти отдел, Junior, Сеньор, Джун, Windows, Программа
Спроси Пикабу Вопрос Компьютерная помощь Код Исходный код Монитор Экран Программное обеспечение Ultrawide Браузер Яндекс Браузер Настройка IT Айтишники Айти отдел Junior Сеньор Джун Windows Программа
21
rabota.pikabu
rabota.pikabu
6 месяцев назад
Пикабу Работа
Серия Удаленная работа

Тестировщик junior в Создаватель,Удаленно⁠⁠

Опыт работы: не имеет значения
Зарплата: от 30 000 до 60 000 рублей

Другие вакансии от Создавателя

Ваши задачи:

  • Составлять тестовую документацию.

  • Проводить функциональное тестирование.

  • Составлять понятные баг-репорты и отчеты по тестированию.

  • Участвовать в релизах.

  • Отвечать в чатах на вопросы пользователей о работе приложений.

  • Собирать аналитику.

  • Взаимодействовать по задачам с командой веб-разработчиков.

Требования:

  • Обязательно знание техник тест-дизайна.

  • Пройденные курсы по тестированию.

  • Опыт работы – будет плюсом.

  • Умение вести тестовую документацию, работать в таск-трекере.

  • Знание Битрикс24.

  • Вдумчивость, ответственность, самостоятельность.

  • Умение оценивать сроки задач.

ОТКЛИКНУТЬСЯ →

Больше вакансий по вашим предпочтениям ищите на сайте Пикабу Работа.

[моё] Вакансии Свежие вакансии Пикабу Вакансии Работа Карьера Поиск работы Собеседование Профессия Зарплата Сотрудники Россия Удаленно Тестировщики Айтишники IT Junior Текст
6
hypo69
hypo69
7 месяцев назад
Программирование на python
Серия Вопросы собеседований - разработчик python 1 - 100

101 игра на python. Вопросы собеседований. 41 - 50⁠⁠

Вопросы 👉 1 - 10

Вопросы 👉 11 - 20

Вопросы 👉 21 - 30

Вопросы 👉 31 - 40


Вопрос 41.

Какова основная цель и функциональность декоратора @staticmethod в классах Python, и как он влияет на взаимодействие метода с атрибутами класса и экземпляра?

  • A. Декоратор @staticmethod преобразует метод в метод только для класса, который может изменять только атрибуты класса и не может получать доступ или изменять данные, специфичные для экземпляра.

  • B. Он позволяет вызывать метод у экземпляра класса или непосредственно из самого класса без необходимости ссылки на класс или экземпляр, делая метод более похожим на простую функцию, которая не работает с объектом.

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

  • D. Декоратор @staticmethod ограничивает метод возможностью вызова только во время создания объекта класса, в первую очередь используется для инициализации статических атрибутов класса.


Вопрос 42.

Учитывая значительные особенности типа данных "список" в Python, каковы последствия использования списков для операций, включающих частое вставление и удаление элементов, особенно в начале списка?

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

  • B. Списки Python реализованы как массивы, а это означает, что вставки и удаления в начале списка могут быть медленными, поскольку они требуют сдвига всех последующих элементов в памяти.

  • C. Тип данных "список" автоматически сортирует свои элементы для поддержания порядка после каждой вставки или удаления, что значительно повышает производительность при частом добавлении или удалении элементов.

  • D. Списки в Python — это связанные списки, гарантирующие, что вставка или удаление элементов в любой позиции, включая начало, выполняется стабильно быстро.


Вопрос 43.

Как оператор with в Python повышает читаемость кода и управление ресурсами, особенно в контексте обработки файлов и других ресурсоемких операций?

  • A. Оператор with ограничивает блок выполнения доступом только к внешним ресурсам, гарантируя, что все ресурсоемкие операции будут централизованы.

  • B. Он автоматически управляет открытием и закрытием ресурсов, гарантируя, что они будут правильно освобождены после выполнения блока кода, что упрощает обработку ошибок и управление ресурсами.

  • C. Этот оператор действует как цикл, который непрерывно проверяет наличие ошибок в блоке кода, предотвращая сбои программы из-за необработанных исключений.

  • D. Оператор with ускоряет выполнение кода внутри своего блока, оптимизируя использование памяти и циклы ЦП.


Вопрос 44.

В Python, как функция zip облегчает обработку нескольких итерируемых объектов, и каков ее типичный случай использования в задачах манипулирования и агрегации данных?

  • A. Функция zip объединяет несколько списков в один список кортежей, где каждый кортеж содержит элементы из всех списков по определенному индексу, оптимизируя использование памяти за счет сжатия данных.

  • B. Она итерирует по нескольким итерируемым объектам одновременно, возвращая итератор кортежей, где каждый кортеж содержит элементы итерируемых объектов с тем же индексом, что полезно для параллельной обработки данных.

  • C. Функция zip в Python шифрует данные из нескольких итерируемых объектов для защиты их содержимого перед обработкой, в основном используется в приложениях, работающих с конфиденциальными данными.

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


Вопрос 45.

Каково назначение и типичное применение оператора assert в Python, особенно в контексте отладки и разработки более надежного кода?

  • A. Оператор assert в Python в основном используется для определения главной функции программы, гарантируя, что она является первой частью исполняемого кода.

  • B. Он используется для проверки корректности условий в программе; если условие истинно, программа продолжается, но если ложно, программа выдает AssertionError, помогая в отладке.

  • C. Python использует оператор assert для шифрования утверждений в коде, предотвращая несанкционированный доступ к отладочным выражениям и конфиденциальным проверкам.

  • D. Оператор assert служит инструментом документирования, который автоматически генерирует руководства пользователя на основе утверждений, определенных во всем коде.


Вопрос 46.

Какова функциональность функции super() в Python, особенно в контексте объектно-ориентированного программирования и иерархий наследования?

  • A. Функция super() используется для возврата прокси-объекта, который делегирует вызовы методов родительскому или братскому классу, позволяя получить доступ к унаследованным методам, которые могли быть переопределены в классе.

  • B. Она служит механизмом для обхода переопределения методов в подклассах, гарантируя, что метод из родительского класса не может быть переопределен ни в каких классах-потомках.

  • C. Python использует super(), чтобы автоматически обнаруживать и вызывать конструктор базового класса, независимо от того, какой метод или атрибут используется.

  • D. Функция инициализирует все переменные в родительском классе значениями по умолчанию, независимо от того, как они были инициализированы в подклассе.


Вопрос 48.

В Python, какова роль переменной __name__, и как она используется обычно в скриптах и модулях?

  • A. Переменная __name__ используется для определения имени класса объекта, позволяя динамически ссылаться на тип класса во всем приложении.

  • B. Это встроенная переменная, которая содержит имя модуля, в котором она используется; если модуль запускается как основная программа, то он содержит строку "__main__".

  • C. Эта переменная действует как идентификатор для адресов памяти, помогая в прямом управлении местоположением объектов внутри приложений Python.

  • D. __name__ — это инструмент отладки Python, который выводит путь выполнения текущей функции, помогая в трассировке и ведении журнала.


Вопрос 49.

Как Python управляет памятью, особенно в отношении создания и уничтожения объектов?

  • A. Python использует модель ручного управления памятью, где разработчики должны явно выделять и освобождать память, используя системные вызовы.

  • B. Он реализует автоматизированную систему с использованием комбинации подсчета ссылок и сборщика мусора для управления памятью, которая динамически управляет выделением и освобождением объектов.

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

  • D. Python позволяет программистам настраивать алгоритм выделения памяти в режиме реального времени, оптимизируя производительность для определенных типов структур данных.


Вопрос 50.

Каковы последствия использования оператора import в скриптах Python, особенно при управлении зависимостями и модульном программировании?

  • A. Оператор import увеличивает время выполнения скриптов, загружая все доступные библиотечные модули в начале, независимо от того, используются ли они в скрипте.

  • B. Он позволяет программистам получать доступ к коду из других модулей или библиотек в своих программах, способствуя повторному использованию кода и модульному программированию.

  • C. Используя import, Python компилирует каждый импортированный модуль в отдельный байт-код, чтобы предотвратить перекомпиляцию при будущих выполнениях, снижая гибкость.

  • D. Оператор используется для шифрования и защиты кода модулей для предотвращения несанкционированного доступа и изменения кодовой базы.



Ответы:

41, Правильный ответ: B

Объяснение:

Декоратор @staticmethod в Python используется для определения методов, которые логически связаны с классом, но не требуют доступа к данным конкретного экземпляра или самого класса.

  • Вариант A не верен: Статические методы не могут изменять атрибуты класса напрямую, как это делают методы класса.

  • Вариант B верен: @staticmethod позволяет вызывать метод как у экземпляра, так и у класса, он не привязан к конкретному экземпляру класса, поэтому не требует аргумента self или cls.

  • Вариант C не верен: @staticmethod не оптимизирует метод для работы в параллельных потоках.

  • Вариант D не верен: @staticmethod не ограничивает вызов метода только во время создания объекта.

Основные характеристики статических методов:

  1. Нет доступа к экземпляру: Статические методы не принимают неявный первый аргумент self, как это делают методы экземпляра. Они не имеют доступа к данным конкретного экземпляра класса.

  2. Нет доступа к классу: Статические методы также не принимают cls в качестве первого аргумента, что означает, что они не могут напрямую обращаться к атрибутам класса.

  3. Работают как обычные функции: Статические методы похожи на обычные функции, но они определены внутри класса и связаны с ним логически.

  4. Вызываются без объекта: Статический метод может вызываться как у экземпляра объекта (instance.method()), так и непосредственно у самого класса (ClassName.method()).

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

Пример:

101 игра на python. Вопросы собеседований. 41 - 50 Гайд, Программирование, Python, Собеседование, Junior, Длиннопост

В результате:

  • add_numbers не требует доступа к экземпляру класса, поэтому может быть вызван как у класса, так и у экземпляра.

  • modify_class_variable модифицирует атрибут класса class_var.

Таким образом, вариант B является правильным ответом.


42, Правильный ответ: B

Объяснение:

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

  • Вариант A не верен: Списки не оптимизированы для быстрых вставок и удалений в начале списка.

  • Вариант B верен: Вставка или удаление элементов в начале списка требует сдвига всех последующих элементов в памяти, что является медленной операцией для больших списков.

  • Вариант C не верен: Списки не сортируют элементы после вставок или удалений. Сортировку нужно делать явно.

  • Вариант D не верен: Списки в Python не являются связанными списками.

Почему вставка и удаление в начале списка медленные:

  • Сдвиг элементов: Когда вы вставляете элемент в начало списка, Python должен сдвинуть все существующие элементы на одну позицию вправо, чтобы освободить место для нового элемента. Это занимает время, особенно для больших списков.

  • Аналогично при удалении: При удалении элемента из начала списка все последующие элементы нужно сдвинуть влево, чтобы заполнить освободившееся место.

Производительность операций:

  • Доступ по индексу: O(1) – постоянное время, не зависит от размера списка.

  • Вставка/удаление в конце списка: O(1) – вставка или удаление последнего элемента не требует сдвигов.

  • Вставка/удаление в начале/середине списка: O(n) – время выполнения зависит от количества элементов в списке, потому что нужно сдвигать все последующие элементы.

  • Поиск элемента по значению: O(n) - время выполнения зависит от количества элементов, нужно последовательно перебирать все элементы пока не найдется нужный.

Пример:

101 игра на python. Вопросы собеседований. 41 - 50 Гайд, Программирование, Python, Собеседование, Junior, Длиннопост

43, Правильный ответ: B

Объяснение:

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

  • Вариант A не верен: with не ограничивает доступ к внешним ресурсам, а помогает их корректно использовать.

  • Вариант B верен: with гарантирует, что ресурсы будут правильно закрыты, что упрощает управление и обработку ошибок.

  • Вариант C не верен: with не является циклом проверки ошибок и не предотвращает сбои программы.

  • Вариант D не верен: with не влияет на скорость выполнения, его основная цель - управлять ресурсами.

Как работает with:

  1. Вход в контекст: Когда выполняется оператор with, вызывается метод __enter__ менеджера контекста. Обычно этот метод подготавливает ресурс (например, открывает файл).

  2. Выполнение кода: Выполняется блок кода, находящийся внутри with.

  3. Выход из контекста: После выполнения блока кода вызывается метод __exit__ менеджера контекста, гарантируя корректное закрытие или освобождение ресурса, даже если в блоке try возникло исключение.

Преимущества использования with:

  • Автоматическое управление ресурсами: with автоматически закрывает файлы, освобождает соединения, и т.д. после использования, что снижает риск утечки ресурсов.

  • Чистый код: with делает код более чистым, так как он явно указывает, где ресурс используется и управляется.

  • Безопасность: Он обеспечивает корректное освобождение ресурсов даже в случае возникновения ошибок, что делает код более надежным.

  • Улучшение читаемости: with явно показывает границы работы с ресурсом, что улучшает читаемость кода.

Пример:

101 игра на python. Вопросы собеседований. 41 - 50 Гайд, Программирование, Python, Собеседование, Junior, Длиннопост

В результате:

  • Файл my_file.txt откроется автоматически при входе в блок with.

  • После выполнения кода внутри блока with, файл закроется автоматически (даже если возникнет исключение).

  • Если файла не существует, то обработается исключение FileNotFoundError, если произойдет любая другая ошибка, то сработает общее исключение Exception.

Таким образом, вариант B является правильным.


44, Правильный ответ: B

Объяснение:

Функция zip() в Python - это мощный инструмент для агрегации данных из нескольких итерируемых объектов. Она позволяет параллельно итерировать по этим объектам и создавать последовательность кортежей, где каждый кортеж содержит элементы из соответствующих позиций в каждом итерируемом объекте.

  • Вариант A не верен: zip не объединяет в один список, а создает итератор кортежей. Также она не занимается сжатием данных.

  • Вариант B верен: zip действительно итерирует по нескольким итерируемым объектам одновременно, возвращая итератор кортежей.

  • Вариант C не верен: zip не шифрует данные.

  • Вариант D не верен: zip не дополняет списки до одной длины. Итерирование прекращается, когда один из итерируемых объектов закончится.

Как работает zip():

  1. zip() принимает на вход несколько итерируемых объектов (списки, кортежи, строки и др.).

  2. Он возвращает итератор, который производит кортежи.

  3. Каждый кортеж содержит элементы с одинаковыми индексами из соответствующих итерируемых объектов.

  4. Итерация продолжается до тех пор, пока не закончится самый короткий итерируемый объект.

Типичные случаи использования zip():

  1. Параллельная обработка данных: zip() позволяет обрабатывать данные из нескольких списков, кортежей или других итерируемых объектов одновременно.

  2. Создание словарей: zip() может использоваться для создания словарей из пар ключей и значений.

  3. Транспонирование матриц: zip() может быть использована для транспонирования матриц, меняя местами строки и столбцы.

Пример:

101 игра на python. Вопросы собеседований. 41 - 50 Гайд, Программирование, Python, Собеседование, Junior, Длиннопост

В результате:

  • Первый пример объединяет списки имен и оценок в список кортежей.

  • Второй пример создаёт словарь с именами в качестве ключей и оценками в качестве значений.

Таким образом, вариант B является верным, точно описывая функцию zip() и ее применение.


45, Правильный ответ: B

Объяснение:

Оператор assert в Python является инструментом для отладки, который используется для проверки корректности условий во время выполнения программы.

  • Вариант A не верен: assert не определяет главную функцию программы.

  • Вариант B верен: assert проверяет условие и если оно ложно, то выводит исключение AssertionError, помогая в отладке.

  • Вариант C не верен: assert не шифрует код.

  • Вариант D не верен: assert не генерирует документацию.

Как работает assert:

  1. assert принимает в качестве аргумента условие, которое должно быть истинным.

  2. Если условие истинно (возвращает True), программа продолжает выполнение без каких-либо действий.

  3. Если условие ложно (возвращает False), Python вызывает исключение AssertionError. Это прерывает выполнение программы и выводит сообщение об ошибке, которое можно использовать для отладки.

Когда использовать assert:

  • Проверка предположений: Используйте assert для проверки предположений о состоянии вашей программы, которые должны быть верными. Например, если вы ожидаете, что переменная всегда должна быть положительной, добавьте assert variable > 0.

  • Отладка: Используйте assert как инструмент для выявления ошибок на ранних этапах разработки. Это помогает быстро находить и исправлять логические ошибки.

  • Контракты: В некоторых случаях assert можно использовать для проверки контрактов между функциями и модулями, гарантируя правильное использование API.

Пример:

101 игра на python. Вопросы собеседований. 41 - 50 Гайд, Программирование, Python, Собеседование, Junior, Длиннопост

В результате:

  • При вызове calculate_area(5, 10), оба assert условия выполняются, и программа продолжает работу и выводит "Площадь: 50".

  • При вызове calculate_area(-5, 10), первое assert условие не выполняется, и выводится ошибка AssertionError: Ширина должна быть положительной.

Таким образом, вариант B является правильным, поскольку он точно описывает роль assert в проверке условий и отладке.


46, Правильный ответ: A

Объяснение:

Функция super() в Python является важным инструментом в объектно-ориентированном программировании, особенно при работе с иерархией классов и множественным наследованием.

  • Вариант A верен: super() создает прокси-объект, который перенаправляет вызовы методов к родительскому классу.

  • Вариант B не верен: super() не обходит переопределение методов, а наоборот, используется для вызова переопределенных методов родительского класса.

  • Вариант C не верен: super() не используется для автоматического вызова конструктора базового класса, это вызывается при наследовании через вызов super().__init__()

  • Вариант D не верен: super() не инициализирует переменные в родительском классе значениями по умолчанию, а вызывает методы базового класса.

Как работает super():

  1. Доступ к родительскому классу: super() позволяет подклассу вызывать методы родительского класса. Это особенно полезно, когда подкласс переопределяет метод родителя, но при этом нужно выполнить оригинальную версию родительского метода.

  2. Множественное наследование: В случае множественного наследования, super() помогает управлять вызовами методов в правильном порядке (Method Resolution Order - MRO).

  3. Инициализация родительского класса: Часто используется в конструкторах __init__(), чтобы вызвать конструктор родительского класса и выполнить его инициализацию.

Пример:

101 игра на python. Вопросы собеседований. 41 - 50 Гайд, Программирование, Python, Собеседование, Junior, Длиннопост

В результате:

  • super().__init__(name) в дочернем классе позволяет вызвать метод __init__() из родительского класса.

  • super().speak() в дочернем классе вызывает метод speak из родительского класса, а затем печатает что то своё.

Таким образом, вариант A является правильным ответом.


47, Правильный ответ: B

Объяснение:

Лямбда-функции в Python - это анонимные функции, то есть функции без имени. Они определяются с помощью ключевого слова lambda и используются для создания простых функций "на лету" в одну строку.

  • Вариант A не верен: Лямбда-функции не предназначены для постоянного использования и имеют ограниченные возможности по сравнению с обычными функциями, созданными с помощью def.

  • Вариант B верен: Лямбда-функции - это анонимные функции, определяемые в одну строку, и они обычно используются, когда нужна простая функция для кратковременного использования (например, при передаче в map(), filter(), sort()).

  • Вариант C не верен: Лямбда-функции не управляют памятью автоматически. Они работают так же, как обычные функции с точки зрения управления памятью.

  • Вариант D не верен: Лямбда-функции не связаны с управлением глобальными переменными.

Ключевые характеристики лямбда-функций:

  1. Анонимность: Лямбда-функции не имеют имени, в отличие от обычных функций, определенных с помощью def.

  2. Компактность: Они записываются в одну строку и могут содержать только одно выражение.

  3. Область применения: Лямбда-функции часто используются в качестве аргументов для функций высшего порядка, таких как map(), filter(), sorted() и т.д., где нужно передать простую функцию для обработки данных.

  4. Ограничения: Лямбда-функции не могут содержать множественные выражения или сложные конструкции, например циклы и условные операторы.

Пример:

101 игра на python. Вопросы собеседований. 41 - 50 Гайд, Программирование, Python, Собеседование, Junior, Длиннопост

В результате:

  • Лямбда-функция используется для возведения в квадрат каждого элемента списка numbers с помощью map().

  • Лямбда-функция используется для фильтрации четных чисел из списка numbers c помощью filter().

  • Лямбда-функция используется для сортировки списка кортежей points по второму элементу.

Таким образом, вариант B является правильным ответом.


48, Правильный ответ: B

Объяснение:

Переменная __name__ — это специальная встроенная переменная в Python, которая автоматически устанавливается интерпретатором Python. Она используется для определения того, запущен ли модуль как основной скрипт или импортируется в другой модуль.

  • Вариант A не верен: __name__ не связана с именами классов или динамической типизацией.

  • Вариант B верен: Когда модуль запускается как основная программа, Python устанавливает __name__ в "__main__". Если модуль импортируется в другой скрипт, __name__ устанавливается в имя модуля.

  • Вариант C не верен: __name__ не связана с управлением адресами памяти.

  • Вариант D не верен: __name__ не предназначена для отладки, а для определения контекста запуска модуля.

Как используется __name__:

Часто используется для определения, является ли скрипт основным исполняемым файлом или импортирован как модуль. Это позволяет выполнять определенный код, например вызывать функцию main(), только если скрипт запущен напрямую.

Пример:

101 игра на python. Вопросы собеседований. 41 - 50 Гайд, Программирование, Python, Собеседование, Junior, Длиннопост

В результате:

  1. Если запустить my_module.py непосредственно:

    • print(f"Имя модуля: {__name__}") выведет Имя модуля: __main__.

    • Условие if __name__ == "__main__": будет выполнено, так как модуль запущен напрямую.

    • Выведет "Этот код выполняется, если скрипт запущен напрямую." и "Вызов my_function".

  2. Если запустить main.py:

    • print(f"Имя модуля: {__name__}") выведет Имя модуля из main.py: __main__ (так как main.py является основным скриптом).

    • print(f"Имя модуля: {__name__}") в my_module.py выведет Имя модуля: my_module, так как модуль my_module был импортирован в main.py.

    • my_module.my_function() выведет "Вызов my_function"

Таким образом, вариант B является правильным ответом.


49, Правильный ответ: B

Объяснение:

Python использует автоматическое управление памятью, которое включает в себя два основных механизма:

  1. Подсчет ссылок: Python автоматически отслеживает количество ссылок на каждый объект в памяти. Когда количество ссылок на объект падает до нуля, объект считается неиспользуемым и готов к удалению.

  2. Сборщик мусора: Python также имеет сборщик мусора, который периодически запускается и находит объекты, на которые больше нет ссылок (например, циклические ссылки, которые подсчет ссылок не может обнаружить), и освобождает занимаемую ими память.

  • Вариант A не верен: Python не использует ручное управление памятью, как в C или C++.

  • Вариант B верен: Python действительно использует автоматизированную систему с подсчетом ссылок и сборщиком мусора.

  • Вариант C не верен: Python не использует файловый обмен для управления памятью.

  • Вариант D не верен: Python не позволяет программистам настраивать алгоритм выделения памяти в реальном времени.

Подробное объяснение:

  • Подсчет ссылок:

    • Когда создается объект, счетчик ссылок устанавливается в 1.

    • При присвоении объекта новой переменной или передаче в функцию, счетчик ссылок увеличивается.

    • Когда переменная, ссылающаяся на объект, выходит из области видимости или ей присваивается другое значение, счетчик ссылок уменьшается.

    • Когда счетчик ссылок достигает нуля, Python автоматически освобождает память, занимаемую объектом.

  • Сборщик мусора:

    • Подсчет ссылок не может справиться с ситуациями, когда объекты ссылаются друг на друга циклически (так называемые циклические ссылки). В этом случае объекты могут не быть удалены, даже если на них нет прямых ссылок.

    • Сборщик мусора периодически сканирует память в поисках таких циклических ссылок и удаляет объекты, вовлеченные в эти циклы, когда они больше не используются.

Преимущества автоматического управления памятью:

  1. Упрощение разработки: Разработчикам не нужно явно выделять или освобождать память, что снижает сложность кода и риск утечек памяти.

  2. Повышение надежности: Автоматическое управление памятью снижает количество ошибок, связанных с управлением памятью.

  3. Эффективность: Автоматическое управление памятью в Python достаточно эффективно в большинстве случаев, так как позволяет сэкономить память.

Таким образом, вариант B является верным ответом.


50, Правильный ответ: B

Объяснение:

Оператор import в Python является фундаментальным для организации кода в модули и повторного использования кода из других файлов или библиотек.

  • Вариант A не верен: Оператор import не загружает все доступные модули, а только те, которые явно указаны в import-запросе.

  • Вариант B верен: Именно оператор import делает доступным код из других модулей, позволяя повторно использовать код и организовывать программу в виде модулей.

  • Вариант C не верен: Python действительно компилирует импортированный модуль в байт-код (файл .pyc), но это делается для ускорения будущих импортов, а не для снижения гибкости.

  • Вариант D не верен: Оператор import не шифрует код.

Подробное объяснение:

  • Модули: В Python модулем является любой файл с расширением .py. Он может содержать функции, классы и переменные, которые могут быть использованы в других программах.

  • import: Ключевое слово import загружает модуль в текущее пространство имен, позволяя использовать его код. Вы можете импортировать модуль целиком (например, import math) или импортировать конкретные элементы модуля (например, from math import sqrt).

  • Цель импорта: Позволяет разработчикам включать функциональность из одного модуля в другой.

  • Повторное использование кода: Программисты могут повторно использовать код в разных частях программы или в разных программах.

  • Модульность: Программа может быть разделена на логические блоки (модули), каждый из которых выполняет свою определенную функцию.

Пример:

101 игра на python. Вопросы собеседований. 41 - 50 Гайд, Программирование, Python, Собеседование, Junior, Длиннопост

В результате:

  • Скрипт main.py успешно импортирует модуль my_module и использует его функцию my_function().

  • Скрипт main.py импортирует функцию sqrt из модуля math и использует её.

Таким образом, вариант B является правильным, точно описывая назначение и использование оператора import.


Продолжение следует. Подпишись, чтобы не пропустить.

Удачи!

Показать полностью 9
[моё] Гайд Программирование Python Собеседование Junior Длиннопост
0
6
Аноним
Аноним
7 месяцев назад

Будущее и перспективы IT в 2025 году⁠⁠

В 2022 году на IT специальности в российские ВУЗЫ поступило 117 тысяч человек, в 2023 году это количество увеличилось до 126 тысяч (https://www.kommersant.ru/doc/6713963).

При этом сама доля выпускников IT‑направлений в высших учебных заведениях России выше, чем в западных странах, об этом писали в сборнике «Образование в цифрах: 2023», подготовленном НИУ ВШЭ совместно с Минпросвещения. В декабре 2023 года замглавы Минцифры Андрей Заренин оценивал общее количество обучающихся по IT-профилю в ЦЕЛЫХ 500 тысяч человек, и это только на бюджетных местах.

Так что же можно ожидать от найма в 2025 году?

Ну начнем с того что этом году произойдет очередной выпуск огромной толпы айти вкатунов, желающих поднимать хоть какой-то кэш, что усугубит уже и без того трагичную ситуацию. Уже сейчас начался «прогрев» внутри IT-компаний на тотальную экономию, разумеется это будет делаться за счет экономии на наших бенефитах, так и увольнения части сотрудников:

В «дочках» Сбербанка массовые увольнения. Под ударом программисты и разработчики.
Как рассказал CNews руководитель одного из отделов в Ecom.tech, в «Купере» уже уволили 20% ИТ-специалистов: из 1000 около 200 человек. «Объясняют это экономией бюджета и указанием сверху», — отметил он. По словам другого из ИТ-специалистов Ecom.tech, увольнения начались до наступления 2025 г. В одном только «Мегамаркете» сократить могут до 25% сотрудников, отметил он

Следовательно в текущем году сильно сократится количество вакансий, конкуренция достигнет небывалых масштабов.
Продавать свои курсы о вкате становится все сложнее, народ начинает все больше понимать к чему идет профессия программиста в РФ, в условиях кризиса и перепроизводства кадров. На каналах ИТ воздуханов все чаще всплывают гневные залайканные комментарии (которые они стараются снести) о реальном положении дел в ИТ:

Зачем вкатываться в IT? Куда лучше вкатиться в инфоцыганство и продавать рассказы о том, как нужно вкатываться в IT. Ежу понятно что если прям сильно захотеть можно в космос улететь. Вопрос нахрена только. В мое время студенты открывали дверь в айти-конторы ногой. И получали в 2-3 раза выше средней з.п. И никто не считал что это космос. Щаз надо быть кандидатом наук что бы тебя соизволили взять поработать бесплатно. Народ! Идите лучше мебель собирать. Можно за пару месяцев освоить базис-мебельщик и быть синьор-мебельщциком.

Менторы и ИТ продаваны лопат теперь выдают новую методичку про поиск работы за рубежом, но будем реалистами, многие ли из разработчиков действительно будут готовы учить английский или переезжать в другую страну? Ведь им же все это время внушали, что программистов мало.

Примечательно, что если вы посмотрите выдачу американского ютуба с запросом что-то вроде “become a programmer”, то вы обнаружите большое количество видосов с посылом о том что вам вовсе не стоит становиться программистом. В США разработчики уже давно осознали всю суть IT-хайпа и уже не рассматривают работу программиста как нечно элитное, в России же этот период, возможно, выпадет как-раз на конец 2024 года и собственно сам 2025, с появлением первых сообщений о массовых увольнениях и порезки льготной айти ипотеки.

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

Показать полностью
IT Junior Карьера Айтишники Программирование Поиск работы Текст YouTube (ссылка)
11
2237
Stroyka1111
Stroyka1111
7 месяцев назад
Стройка. Интересные решения

Когда джун пытается решить проблему⁠⁠

https://aliexpress.ru/item/1005003996901959.html

https://market.yandex.ru/product/1753770858

Источник / Наше сообщество

Показать полностью
IT Junior Видео Вертикальное видео Короткие видео Telegram (ссылка) Реклама
87
breakingbadIT
breakingbadIT
8 месяцев назад
Программирование на python

Как я из бармена превратился в айтишника: путь новичка в Python и почему это не так страшно, как кажется⁠⁠

Привет, Пикабу! Сегодня я хочу рассказать свою историю о том, как я, бармен, решил круто изменить свою жизнь и окунуться в мир IT. Да-да, я тот самый парень, который вместо того, чтобы наливать тебе мохито, теперь сидит за ноутбуком и пытается понять, почему его код не работает (или работает).
Словно Уолтер Уайт из «Во все тяжкие», я пустился в авантюру, только вместо мета у меня Python, а вместо подпольной лаборатории — куча учебников и курсов.

Как я из бармена превратился в айтишника: путь новичка в Python и почему это не так страшно, как кажется Python, Программирование, IT, Новичок, Junior, Длиннопост

С чего всё началось
Ситуация была классическая: работа в баре, ночные смены, бесконечные коктейли и мысли о том, что я, наверное, могу что-то большее. Однажды, после очередной смены, я наткнулся на статью о том, как IT-сфера меняет жизни людей. И тут меня осенило: а почему бы и нет? Python, как мне сказали, — это идеальный язык для новичков. Ну, думаю, если даже школьники его учат, то и я смогу.

Как я из бармена превратился в айтишника: путь новичка в Python и почему это не так страшно, как кажется Python, Программирование, IT, Новичок, Junior, Длиннопост

Первые шаги: эйфория и разочарование
Начал я, как и многие, с бесплатных курсов и YouTube. Первые дни были как медовый месяц: я писал простенькие программы, которые складывали числа или выводили на экран «Hello, World!». Я чувствовал себя гением. Но потом начались настоящие трудности.

Оказалось, что программирование — это не только про написание кода, но и про умение гуглить, читать документацию и понимать, что ты вообще делаешь. Ошибки сыпались одна за другой. То скобку забыл, то отступ не там поставил, то вообще непонятно, почему код не работает. Иногда я сидел до ночи, пытаясь понять, в чём проблема, а потом оказывалось, что я просто опечатался в названии переменной.

Трудности, с которыми столкнулся:
1. Синтаксис и логика
Python, конечно, дружелюбный язык, но это не значит, что он прощает всё. Отступы, точки с запятой, правильное использование функций — всё это поначалу казалось китайской грамотой.

2. Мотивация
Были моменты, когда хотелось всё бросить. Особенно когда после нескольких часов работы программа всё равно не работала. Но я понял, что в IT важно не сдаваться. Каждая ошибка — это шаг вперёд.

3. Страх неизвестности
Когда ты только начинаешь, кажется, что всё уже придумано до тебя, и ты никогда не сможешь стать крутым специалистом. Но потом я осознал, что даже опытные программисты постоянно учатся.

Что помогло не сдаться:
- Сообщество
Я нашёл несколько Telegram-каналов и форумов, где новички и профессионалы помогают друг другу. Это очень вдохновляет, когда ты видишь, что ты не один.
- Практика
Я начал писать маленькие проекты для себя. Например, простого бота для Telegram. Это дало понимание, что программирование — это не только про теорию, но и про реальные дела.
- Юмор
Да, я научился смеяться над своими ошибками. Когда твой код не работает из-за глупой опечатки, лучше посмеяться, чем злиться.

Почему я веду Telegram-канал?
В процессе обучения я понял, что многим новичкам не хватает поддержки и простого, дружелюбного объяснения сложных вещей. Поэтому я решил создать свой Telegram-канал, где делюсь своим опытом, лайфхаками и полезными ресурсами. Я не гуру программирования, но я точно понимаю, через что проходят новички, и стараюсь помочь.

Если тебе интересно следить за моим путём, задавать вопросы или просто поддержать — добро пожаловать в мой канал: ссылка на канал. Там я делюсь не только серьёзными вещами, но и мемами про программирование, потому что без юмора в этой сфере никуда.

Как я из бармена превратился в айтишника: путь новичка в Python и почему это не так страшно, как кажется Python, Программирование, IT, Новичок, Junior, Длиннопост

Вместо заключения
IT — это не страшно. Да, сначала будет сложно, но если ты действительно хочешь научиться, у тебя всё получится. Главное — не бояться ошибок и не сдаваться. И помни: даже Уолтер Уайт начинал с малого.

Так что, если ты тоже думаешь сменить профессию или просто хочешь попробовать что-то новое — дерзай! А я буду рад видеть тебя в своём канале. Давайте учиться вместе!

P.S. Если твой код не работает, просто перезагрузи компьютер. Не помогло? Ну, тогда добро пожаловать в клуб! 😄

Показать полностью 3
[моё] Python Программирование IT Новичок Junior Длиннопост
13
7
Вопрос из ленты «Эксперты»
LEROOOOU
LEROOOOU
9 месяцев назад

Прошу фидбек по локации⁠⁠

Всем привет, недавно закончил курс и хотелось бы получить фидбек от более опытных Environment artist специалистов. В планах устроиться работать джуном и я был бы благодарен за советы по наполнению головы и портфолио, хочу быть востребованным специалистом

Прошу фидбек по локации Вопрос, Спроси Пикабу, Студенты, 3D, Environment, Поиск работы, Junior, Видео, Без звука, Длиннопост
Прошу фидбек по локации Вопрос, Спроси Пикабу, Студенты, 3D, Environment, Поиск работы, Junior, Видео, Без звука, Длиннопост
Прошу фидбек по локации Вопрос, Спроси Пикабу, Студенты, 3D, Environment, Поиск работы, Junior, Видео, Без звука, Длиннопост
Прошу фидбек по локации Вопрос, Спроси Пикабу, Студенты, 3D, Environment, Поиск работы, Junior, Видео, Без звука, Длиннопост
Показать полностью 3 1
[моё] Вопрос Спроси Пикабу Студенты 3D Environment Поиск работы Junior Видео Без звука Длиннопост
0
2
hypo69
hypo69
11 месяцев назад
Программирование на python

10 минут кода: Расширяем возможности `pprint()`⁠⁠

Привет!  Я покажу о свою реализацию функции pprint(). Это простая функция, которая помогает сделать вывод данных в консоль более читаемым. Когда у тебя есть сложные структуры, например, большие словари, списки или объекты pprint() «красиво» выводит их на экран. Функция также выводит на экран N строк текстовых файлов

pprint(dict)

pprint(list)

pprint(Object)

pprint('text.txt', max_lines=10)

и получить данные в «читабельном» виде.

сразу код функции:


import json

import csv

import pandas as pd

from pathlib import Path

from typing import Any

from pprint import pprint as pretty_print


def pprint(print_data: str | list | dict | Path | Any = None, depth: int = 4, max_lines: int = 10, *args, **kwargs) -> None:

""" Pretty prints the given data in a formatted way.


The function handles various data types and structures such as strings, dictionaries, lists, objects, and file paths.

It also supports reading and displaying data from CSV and XLS/XLSX files.


Args:

print_data (str | list | dict | Any, optional): The data to be printed. It can be a string, dictionary, list, object, or file path. Defaults to `None`.

depth (int, optional): The depth to which nested data structures will be printed. Defaults to 4.

max_lines (int, optional): Maximum number of lines to print from a file (CSV/XLS). Defaults to 10.

*args: Additional positional arguments passed to the print or pretty_print function.

**kwargs: Additional keyword arguments passed to the print or pretty_print function.


Returns:

None: The function prints the formatted output and does not return any value.


Example:

>>> pprint("/path/to/file.csv", max_lines=5)

>>> pprint("/path/to/file.xls", max_lines=3)

"""

if not print_data:

return


def _read_text_file(file_path: str | Path, max_lines: int) -> list | None:

"""Reads the content of a text file up to `max_lines` lines."""

path = Path(file_path)

if path.is_file():

try:

with path.open("r", encoding="utf-8") as file:

return [file.readline().strip() for _ in range(max_lines)]

except Exception as ex:

pretty_print(print_data)

return None


def _print_class_info(instance: Any, *args, **kwargs) -> None:

"""Prints class information including class name, methods, and properties."""

class_name = instance.__class__.__name__

class_bases = instance.__class__.__bases__


print(f"Class: {class_name}", *args, **kwargs)

if class_bases:

print([base.__name__ for base in class_bases], *args, **kwargs)


attributes_and_methods = dir(instance)

methods = []

properties = []


for attr in attributes_and_methods:

if not attr.startswith('__'):

try:

value = getattr(instance, attr)

except Exception:

value = "Error getting attribute"

if callable(value):

methods.append(f"{attr}()")

else:

properties.append(f"{attr} = {value}")


pretty_print("Methods:", *args, **kwargs)

for method in sorted(methods):

pretty_print(method, *args, **kwargs)

print("Properties:", *args, **kwargs)

for prop in sorted(properties):

pretty_print(prop, *args, **kwargs)


def _print_csv(file_path: str, max_lines: int) -> None:

"""Prints the first `max_lines` lines from a CSV file."""

try:

with open(file_path, newline='', encoding='utf-8') as csvfile:

reader = csv.reader(csvfile)

header = next(reader)

print(f"CSV Header: {header}")

for i, row in enumerate(reader, start=1):

print(f"Row {i}: {row}")

if i >= max_lines:

break

except Exception as ex:

pretty_print(print_data)


def _print_xls(file_path: str, max_lines: int) -> None:

"""Prints the first `max_lines` rows from an XLS/XLSX file."""

try:

df = pd.read_excel(file_path, nrows=max_lines)

print(df.head(max_lines).to_string(index=False))

except Exception as ex:

pretty_print(print_data)


def json_serializer(obj):

"""Custom handler for unsupported data types in JSON."""

if isinstance(obj, Path):

return str(obj)


# Check if it's a file path

if isinstance(print_data, str):

if Path(print_data).is_file():

file_extension = Path(print_data).suffix.lower()


if file_extension == '.csv':

_print_csv(print_data, max_lines)

elif file_extension in ['.xls', '.xlsx']:

_print_xls(print_data, max_lines)

elif file_extension == '.txt':

content = _read_text_file(print_data, max_lines)

if content:

for line in content:

print(line)

elif file_extension == '.json':

try:

with open(print_data, 'r', encoding='utf-8') as json_file:

json_data = json.load(json_file)

print(json.dumps(json_data, default=json_serializer, indent=4))

except Exception as ex:

pretty_print(print_data)

else:

pretty_print(print_data, *args, **kwargs)

else:

# If the data is not a file, pretty print or handle it as a class

try:

if isinstance(print_data, dict):

print(json.dumps(print_data, default=json_serializer, indent=4))

elif isinstance(print_data, list):

print("[")

for item in print_data:

print(f"\t{item} - {type(item)}")

print("]")

else:

print(print_data, *args, **kwargs)

if hasattr(print_data, '__class__'):

_print_class_info(print_data, *args, **kwargs)

except Exception as ex:

pretty_print(print_data)

код на github

gist

Для запуска и проверки кода я сделал Интерактивный блокнот google colab

Как работает функция:

  1. Печать строковых данных**: Если предоставленный аргумент является строкой, функция проверяет, представляет ли она путь к файлу. Если это так, функция считывает содержимое файла и выводит его. Если строка не является путем к файлу, функция просто выводит строку.

  2. Печать списков**: Если аргумент является списком, функция преобразует все объекты `Path` в списке в строки и использует стандартную функцию `pprint` для форматирования списка.

  3. Печать словарей**: Если аргумент является словарем, функция преобразует все объекты `Path` в строки, чтобы обеспечить корректную сериализацию в JSON. Затем она выводит словарь в формате JSON с отступами для повышения читаемости

  4. Печать объектов**: Если аргумент является объектом, функция использует `pprint`, чтобы вывести объект вместе с дополнительной информацией о его классе, методах и свойствах. Функция выводит имя класса, его базовые классы и перечисляет методы и свойства объекта, упрощая анализ его структуры.

  5. Вывод в консоль произвольное количество сток из тексовых файлов (txt, json,csv,xls)

Примеры.

Все примеры можно запускать в блокноте jupyter notebook https://colab.research.google.com/drive/1uBcZuMabkix2qpNJtNk...
Здеськраткое руководство как пользоваться блокнотом

Пример 1: Строка

pprint("Hello, World!")

Результат:

'Hello, World!'

Пример 2.1: Список

from pathlib import Path

example_list = [

"Hello, World!",

Path("C:/example/path"),

42,

{"key": "value"}

]

example_list_2 = [

"Python is fun!",

Path("/home/user/project"),

99,

{

"name": "Alice",

"age": 30,

"languages": ["Python", "JavaScript", "C++"]

}

]

pprint(example_list)

Результат:

[

Hello, World! - <class 'str'>

C:/example/path - <class 'pathlib.PosixPath'>

42 - <class 'int'> {'key': 'value'} - <class 'dict'>

[1, 2, 3] - <class 'list'>

]

Пример 2.2: Несколько списков

pprint(example_list+example_list_2)

Результат:

[

Hello, World! - <class 'str'>

C:/example/path - <class 'pathlib.PosixPath'>

42 - <class 'int'> {'key': 'value'} - <class 'dict'>

Python is fun! - <class 'str'>

/home/user/project - <class 'pathlib.PosixPath'>

99 - <class 'int'>

{'name': 'Alice', 'age': 30, 'languages': ['Python', 'JavaScript', 'C++']} - <class 'dict'>

]

Пример 3: Словарь

from pathlib import Path

import json

example_dict = {

"name": "Alice",

"age": 30,

"address": {

"street": "123 Main St",

"city": "Wonderland"

},

"files": [Path("C:/file1.txt"), Path("C:/file2.txt")]

}

pprint(example_dict)

Результат:

{

{

"name": "Alice",

"age": 30,

"address":{

"street": "123 Main St",

"city": "Wonderland"

},

"files": [ "C:/file1.txt", "C:/file2.txt" ]

}

Пример 4.1: Объект класса MyClass

class MyClass:

def __init__(self, name, value):

self.name = name

self.value = value

def display(self):

return f"{self.name} has value {self.value}"

# Create an instance of the class

obj = MyClass(name="TestObject", value=100)

# Print object information

pprint(obj)

Результат:

<__main__.MyClass object at 0x797a27f17b50>

Class: MyClass

['object']

'Methods:'

'display()'

Properties:

'name = TestObject'

'value = 100'

Пример 4.2: Объект класса Path

import os

from pathlib import Path

current_path = Path(os.getcwd()).resolve()

pprint(current_path)

Результат:

/content

Class: PosixPath

['Path', 'PurePosixPath']

'Methods:'

...

'absolute()'

'as_posix()'

'as_uri()'

'chmod()'

'cwd()'

'exists()'

'expanduser()'

'glob()'

'group()'

'hardlink_to()'

'home()'

...

Properties:

...

'anchor = /'

'drive = '

'name = content'

'parent = /'

'parents = <PosixPath.parents>'

"parts = ('/', 'content')"

'root = /'

'stem = content'

'suffix = '

'suffixes = []'

Пример 5: печать содержимого файла JSON

import json

from pathlib import Path

dct = {

"имя": "Руслан",

"возраст": 25,

"город": "Москва",

"навыки": ["Python", "Наука о данных"]

}

# Save the dictionary to a JSON file

with open(Path('example_json.json'), 'w', encoding='utf-8') as f:

json.dump(dct, f, ensure_ascii=False, indent=4)

# Pretty print the JSON file

pprint('example_json.json')

Результат:

{

"имя": "Руслан",

"возраст": 25,

"город": "Москва",

"навыки": [ "Python", "Наука о данных" ]

}

Пример 6: печать первых 10 строк из файла ТХТ

from pathlib import Path


s = """1: В лесу родилась ёлочка,

2: В лесу она росла.

3: Зимой и летом стройная,

4: Зелёная была.


5: Метель ей пела песенку:

6: «Спи, ёлочка, бай-бай!»

7: Мороз снежком укутывал:

8: «Смотри, не замерзай!»


9: Трусишка зайка серенький

10: Под ёлочкой скакал.

11: Порою волк, сердитый волк,

12: Рысцою пробегал.


13: Чу! Снег по лесу частому

14: Под полозом скрипит.

15: Лошадка мохноногая

16: Торопится, бежит."""


# Save text file

with open(Path('example_txt.txt'), 'w', encoding='utf-8') as f:

f.write(s)

max_lines=10 # <- количество выводимых на печать строк

# Call pprint with the correct filename

pprint('example_txt.txt', max_lines=max_lines)

Результат:

1: В лесу родилась ёлочка,

2: В лесу она росла.

3: Зимой и летом стройная,

4: Зелёная была.

5: Метель ей пела песенку:

6: «Спи, ёлочка, бай-бай!»

7: Мороз снежком укутывал:

8: «Смотри, не замерзай!»

Пример 7: печать первых двух строк из файла CSV

import csv

from pathlib import Path


# Содержимое example.csv:

csv_data = """имя,возраст,город

Алексей,30,Москва

Борис,25,Санкт-Петербург

Виктор,35,Казань

Дмитрий,28,Новосибирск

Екатерина,22,Екатеринбург

"""

# Создание CSV файла

with open(Path('example.csv'), 'w', encoding='utf-8') as f:

f.write(csv_data)

pprint('example.csv', max_lines=2)

Результат:

CSV Header: ['имя', 'возраст', 'город']

Row 1: ['Алексей', '30', 'Москва']

Row 2: ['Борис', '25', 'Санкт-Петербург']

Пример 8: печать первых трёх строк из файла XLS

import pandas as pd

from pathlib import Path

# Create a sample DataFrame and save it as an Excel file

data = {

"имя": "Руслан",

"возраст": 25,

"город": "Москва",

"навыки": ["Python", "Наука о данных"]

}

df = pd.DataFrame(data)

# Save the DataFrame as an .xlsx file

df.to_excel('example.xlsx', index=False)

# Print the file name using pprint

pprint('example.xlsx', max_lines=3)

Результат:

имя возраст город навыки

Руслан 25 Москва Python

Руслан 25 Москва Наука о данных

Для запуска и проверки кода я сделал Интерактивный блокнот google colab. здесь все наглядно с примерами

Показать полностью
[моё] Программа Гайд Программирование Python Junior Утилиты Для начинающих Инструкция Jupyter notebook Длиннопост
16
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии