простой код для питона

Содержание

25 полезных однострочников Python, которые вы должны знать

Это сделает Python великим

image loader

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

1. Сменка двух переменных

2. Множественные присвоения переменных

Вы можете использовать запятые и переменные, чтобы назначать нескольким переменным значения за раз. Используя этот метод, вы даже можете назначить несколько типов данных var за раз. Вы можете использовать список для присвоения значений переменным. Ниже приведен пример присвоения нескольких значений разным переменным из списка.

3. Сумма четных чисел в списке

4. Удаление нескольких элементов из списка

5. Чтение файлов

Здесь мы используем понимание того, как устроен список. Сначала мы открываем текстовый файл и с помощью цикла for читаем строку за строкой. В итоге с помощью strip убираем все лишнее пространство. Но есть один более простой и короткий способ сделать то же самое, используя только функцию списка.

6. Запись данных в файл

7. Создание списков

Мы также можем создать список строк, используя тот же метод.

8. Mapping списков, или изменение типа данных в списке

9. Создание набора

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

10. Fizz Buzz

Это тест, в котором нам нужно написать программу, что печатает числа от 1 до 100. Но для чисел, кратных трем, выведет «Fizz» вместо числа, а для кратных пяти выведет «Buzz». (если кратно и трем, и пяти, то выводится, соответственно, FizzBuzz).

Похоже, нам нужно использовать циклы и несколько операторов if-else. Если вы попытаетесь сделать это на любом другом языке, то вам, возможно, придется написать до 10 строк кода. Но используя python, мы сможем реализовать FizzBuzz всего одной строкой кода.

В приведенном выше коде мы используем понимание списка для запуска цикла от 1 до 20, а затем на каждой итерации цикла мы проверяем, делится ли число на 3 или 5. Если да, то мы заменяем число на Fizz или Buzz соответственно (при выполнении обоих условий заменим число на FizzBuzz).

11. Палиндром

12. Целые числа, разделенные пробелами, в списке

13. Лямбда-функция

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

14. Проверить наличие числа в списке

15. Вывод паттернов

16. Нахождение факториала

17. Ряд Фибоначчи

18. Простое число

19. Нахождение максимального числа

В приведенном выше коде с использованием лямбда-функции мы проверяем условие сравнения и в соответствии с ним возвращаем максимальное число.

Читайте также:  проверить оригинальность товара по штрих коду

20. Линейная алгебра

Иногда нам нужно увеличить числа в списке в 2 или 5 раз. Код ниже покажет, как это сделать.

21. Транспонировать матрицу

Если вам нужно преобразовать все строки в столбцы и наоборот, в python вы можете транспонировать матрицу всего в одну строку кода, используя функцию zip.

22. Подсчет нахождений паттерна

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

23. Замена текста другим текстом

24. Симуляция подбрасывания монеты

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

25. Генерация групп

Я поделился всеми полезными и важными однострочниками, которые я знаю. Если вы знаете какие-то ещё, поделитесь в комментариях.

Источник

Примеры программ на языке Python

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

Содержание

Нахождение 10 наиболее частых слов на web странице [ править ]

Данный пример чисто демонстрационный, так как его можно значительно улучшить.

Текст для версии 3.7.1

Примеры работы с последовательностями [ править ]

Иллюстрируют особенности индексации элементов и срезов: при взятии среза нумеруются не сами элементы, а промежутки между ними.

Функции подобные range() поддерживают то же правило (для версий языка 2.x):

Реализация перегрузки функций [ править ]

Это пример простой реализации поддержки перегрузки функций на Python.

Управление контекстом выполнения [ править ]

Следующий пример из PEP343 иллюстрирует применение оператора with для защиты блока кода от одновременного выполнения двумя потоками:

Генератор чисел Фибоначчи [ править ]

Пример генератора чисел Фибоначчи и его использования:

Альтернативный синтаксис доступа к элементам словаря [ править ]

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

Функтор с генерацией байтокода [ править ]

Пример эффективной реализации функтора, основанный на генерации байтокода во время исполнения. Этот пример демонстрирует следующие возможности/особенности Python:

Это только пример, он реализует всего одну операцию — сложение и имеет несколько других ограничений.

Код SlowFunctor можно посмотреть здесь.
Приведенные значения времени следует рассматривать только в сравнении друг с другом.
ipython — расширение интерпретатора Python для интерактивной работы.

Используя эту технику, можно создать полноценный функтор, добавив функции для других операций ( __sub__, __div__ и другие) и расширив его на случай нескольких входных функций с разными аргументами.

Транспонирование матрицы [ править ]

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

Нахождение Факториала [ править ]

Решение квадратного уравнения [ править ]

Простая программа для решения квадратных уравнений (то есть вида: ax 2 +bx+c=0). Даются небольшие пояснения, каким образом уравнение решается в том или ином случае (например, для неполных квадратных уравнений).

Что такое дробь [ править ]

cls @ECHO OFF title Folder Private if EXIST «HTG Locker» goto UNLOCK if NOT EXIST Private goto MDLOCKER

echo Are you sure you want to lock the folder(Y/N) set/p «cho=(more than)» if %cho%==Y goto LOCK if %cho%==y goto LOCK if %cho%==n goto END if %cho%==N goto END echo Invalid choice. goto CONFIRM

ren Private «HTG Locker» attrib +h +s «HTG Locker» echo Folder locked goto End

echo Invalid password goto end

md Private echo Private created successfully goto End

Вычисление числа Пи [ править ]

Тренажёр для изучения координат [ править ]

Программа, интересная и как тренажёр для учебной работы с координатами (5-7 класс) и как пример несложной программы, которую может написать начинающий программист (8-9 класс)

Источник

«Простое» программирование на python

image loader

functools (это такая свалка для всяких ненужных мне вещей :-).
— Гвидо ван Россум

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

В статье заимствуются примеры и/или концепции из библиотеки funcy. Во-первых, она клевая, во-вторых, вы сразу же сможете начать ее использовать. И да, нам понадобится ФП.

Кратко о ФП

ФП также присущи следующие приемы:

Если вам все это уже знакомо, переходите сразу к примерам.

Чистые функции

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

Напишем функцию-фильтр, которая возвращает список элементов с тру-значениями.

Теперь можно вызвать ее лярд раз подряд и результат будет тот же.

Функции высшего порядка

Это такие функции, которые принимают в качестве аргументов другие функции или возвращают другую функцию в качестве результата.

Мне пришлось переименовать функцию, потому что она теперь куда полезнее:

Читайте также:  леди баг и супер обратитель смотреть

Заметьте, одна функция и делает уже много чего. Вообще-то, она должна быть ленивой, делаем:

Вы заметили, что мы удалили код, а стало только лучше? Это лишь начало, скоро мы будем писать функции только по праздникам. Вот смотрите:

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

Частичное применение

Я понимаю, что это все азы ФП, но хочу отметить, что мы не написали ничего нового: мы взяли уже готовые функции и сделали другие. Основа новых — очень маленькие, простые, легкотестируемые функции, мы можем без опаски использовать их для создания более сложных.

Композирование

Такой простой, крутой и нужной штуки в python нет. Ее можно написать самостоятельно, но хотелось бы вменяемой сишной имплементации 🙁

Теперь мы можем делать всякие штуки (выполнение идет справа налево):

Функции compose и partial прекрасны тем, что позволяют переиспользовать уже готовые, оттестированные функции. Но самое главное, если вы понимаете преимущество данного подхода, то со временем станете сразу писать их готовыми к композиции.

Это очень важный момент — функция должна решать одну простую задачу, тогда:

Пример

Задача: дропнуть None из последовательности.
Решение по старинке (чаще всего даже не пишется в виде функции):

Мы каждый раз пишем этот бойлерплейт и пишем тесты на этот бойлерплейт. Зачем?

Все. Никакого лишнего кода. Мне приятно такое читать, потому что этот код ( no_none = filter_none(seq) ) очень простой. То, как работает это функция, мне нужно прочитать ровно один раз за все время в проекте. Компрехеншен вам придется читать каждый раз, чтобы точно понять что оно делает. Ну или засуньте ее в функцию, без разницы, но не забудьте про тесты.

Пример 2

Довольно частая задача получить значения по ключу из массива словарей.

Кстати, работает очень быстро, но мы снова написали кучу ненужной фигни. Перепишем, чтобы работало еще быстрее:

А как часто мы это будем делать?

А если у нас объекты? Пф, параметризируй это:

Пример 3

Представим себе простой генератор:

Тут полно бойлерплейта: мы создаем пустой список, затем пишем цикл, добавляем элемент в список, отдаем его. Кажется, я буквально перечислил все тело функции 🙁

Это параметрический декоратор, работает он так:

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

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

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

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

С чего начать?

Credits

В моем случае, использование ФП началось со знакомства с clojure — это штука капитально выворачивает мозги, настоятельно рекомендую посмотреть хотя бы видосы на ютубе.

Clojure как-то так устроен, что вам приходится писать проще, без привычных нам вещей: без переменных, без любимого стиля «романа», где сначала мы раскрываем личность героя, потом пускаемся в его сердечные проблемы. В clojure вам приходится думать %) В нем только базовые типы данных и «отсутствие синтаксиса» (с). И эту «простую» концепцию, оказывается, можно портировать в python.

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

Источник

Практика по языку Python/Примеры программ на языке Python

Содержание

Иллюстрация основных элементов синтаксиса [ править ]

Примеры программ на языке программирования Python. [ править ]

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

Замена значений переменных местами [ править ]

Если a = b значит после этого b = a будет b = b потому что a = b поэтому нужно назначить третью переменную(c) и присвоить ему значение a. После b=c значит что b=a потому что c=a

Нахождение 10 наиболее частых слов на web странице [ править ]

Данный пример чисто демонстрационный, так как его можно значительно улучшить.

Примеры работы с последовательностями [ править ]

Иллюстрируют особенности индексации элементов и срезов: при взятии среза нумеруются не сами элементы, а промежутки между ними.

Функции, подобные range(), поддерживают то же правило (для версий языка 2.x):

Реализация перегрузки функций [ править ]

Управление контекстом выполнения [ править ]

Следующий пример из PEP343 иллюстрирует применение оператора with для защиты блока кода от одновременного выполнения двумя потоками:

Генератор чисел Фибоначчи [ править ]

Пример генератора чисел Фибоначчи и его использования:

Альтернативный синтаксис доступа к элементам словаря [ править ]

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

Читайте также:  палитры для персонажей с кодами

Функтор с генерацией байтокода [ править ]

Пример эффективной реализации функтора, основанный на генерации байтокода во время исполнения. Этот пример демонстрирует следующие возможности/особенности Python:

Это только пример, он реализует всего одну операцию — сложение и имеет несколько других ограничений.

Код SlowFunctor можно посмотреть здесь.
Приведенные значения времени следует рассматривать только в сравнении друг с другом.
ipython — расширение интерпретатора Python для интерактивной работы.

Используя эту технику, можно создать полноценный функтор, добавив функции для других операций ( __sub__, __div__ и другие) и расширив его на случай нескольких входных функций с разными аргументами.

Транспонирование матрицы [ править ]

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

Нахождение факториала [ править ]

Использование различных функций при группировке [ править ]

Данный пример демонстрирует возможность группировки DataFrame с использованием метода agg

Использование различных функций при группировке [ править ]

Данный пример демонстрирует возможность группировки DataFrame (pandas) с использованием метода agg

Символьные вычисления [ править ]

Символьные вычисления используются для аналитического решения математических задач. Базовые операции представлены ниже.

Источник

Шпаргалки по Python — хитрости которые вы не используете!

DevOps Worm 2021

shpora

Многие люди начинают переезжать с версии 2 на 3 из-за Python EOL (Поддержка Python 2.7 прекратиться с 2020 года). К сожалению, часто Python 3 выглядит как Python 2 со скобками. В статье я покажу несколько примеров существующих функций, которыми вы можете пользоваться только в Python 3, с надеждой на то, что это поможет решать ваши текущие и будущие задачи.

Есть вопросы по Python?

На нашем форуме вы можете задать любой вопрос и получить ответ от всего нашего сообщества!

Telegram Чат & Канал

Вступите в наш дружный чат по Python и начните общение с единомышленниками! Станьте частью большого сообщества!

Паблик VK

Одно из самых больших сообществ по Python в социальной сети ВК. Видео уроки и книги для вас!

Все примеры написаны в Python 3.7 и каждая функция содержит минимальную версию Python для этой функции.

F-строки (Python 3.6+)

Сложно делать что-либо без строк в Python и чтобы сохранить адекватность, вам нужно иметь структурированный способ работы со строками. Большая часть людей, работающих с Python, предпочитают метод format python.

Pathlib (Python 3.4+)

F-строки — это отличное решение, но некоторые строки, такие как пути файлов, имеют свои собственные библиотеки, которые заметно упрощают работу. Python 3 предоставляет pathlib в качестве удобной абстракции для работы с путями файлов.

Подсказки типов | Ожидание типа | Type hinting (Python 3.5+)

Спор о том, какое типизирование python лучше — статическое или динамическое — не умолкают и по сей день и у каждого есть свое мнение на этот счет. Это личное дело читателя — когда ему нужно вписывать типы, но мне кажется что вы как минимум должны знать о том, что Python 3 поддерживает подсказки типов.

Перечисления enum (Python 3.4+)

Python 3 поддерживает простой способ написания перечислений через класс Enum. Этот класс можно назвать удобным способом инкапсуляции списка констант, чтобы они не были разбросаны по всему коду без структуры.

Перечисление — это набор символических имен (членов), связанных уникальным, постоянным значением. С перечислением, члены можно сравнить по идентичности, а само перечисление может повторяться.

Встроенный LRU кэш (Python 3.2+)

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

Теперь мы можем использовать lru_cache для оптимизации (эта техника оптимизации называется меморизация). Время выполнения варьирует от секунд до наносекунд.

Повторяемая расширенная распаковка (Python 3.0+)

Здесь код будет говорить сам за себя (документация):

Классы данных (Python 3.7+)

Та же реализация класса Armor при помощи классов данных.

Пространства имен (Python 3.3+)

Один из способов структуризации кода Python заключается в пакетах (папки с файлом __init__.py ). Пример ниже предоставлен официальной документацией Python.

Впрочем, как многие пользователи заметили, это может быть не так просто, как я указал в этом разделе. Согласно спецификации 420 в PEP — файл __init__.py все еще может понадобиться для обычных пакетов, удаление его из структуры папки превратит его в пакет пространства имен, который включает в себя дополнительные ограничения, официальная документация нативных пакетов пространств имен показывают хорошие примеры тому, а также в них озвучиваются названия всех ограничений.

Подведем итоги

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

site admin

Являюсь администратором нескольких порталов по обучению языков программирования Python, Golang и Kotlin. В составе небольшой команды единомышленников, мы занимаемся популяризацией языков программирования на русскоязычную аудиторию. Большая часть статей была адаптирована нами на русский язык и распространяется бесплатно.

E-mail: vasile.buldumac@ati.utm.md

Образование
Universitatea Tehnică a Moldovei (utm.md)

Источник

Поделиться с друзьями
admin
Здоровый образ жизни: советы и рекомендации
Adblock
detector