Форматирование строк
Привет, в этом посте разберем возможные в Python методы форматирования строк. Все примеры использования можете посмотреть на прикрепленной ниже картинке.
Самый древний и уже редко используемый способ – с помощью оператора %. Написание %s и %d зависит от того, что мы туда передаем и что хотим увидеть в итоге, но это уже тема отдельного поста.
В Python 2.6 появился метод .format() с немного отличающимся синтаксисом от существующего оператора %. К слову, этот метод активно используется и по сей день, в отличии от его предшественника.
Начиная с версии Python 3.6, доступны f-строки – свежий и наиболее производительный способ форматирования строк.
Подписывайтесь на канал 👉@pythonofff
Привет, в этом посте разберем возможные в Python методы форматирования строк. Все примеры использования можете посмотреть на прикрепленной ниже картинке.
Самый древний и уже редко используемый способ – с помощью оператора %. Написание %s и %d зависит от того, что мы туда передаем и что хотим увидеть в итоге, но это уже тема отдельного поста.
В Python 2.6 появился метод .format() с немного отличающимся синтаксисом от существующего оператора %. К слову, этот метод активно используется и по сей день, в отличии от его предшественника.
Начиная с версии Python 3.6, доступны f-строки – свежий и наиболее производительный способ форматирования строк.
Подписывайтесь на канал 👉@pythonofff
👍3
Сортировка словаря по значениям
Сортировка данных словаря по значениям ключей, а не по самим ключам, нередко ставит в тупик.
Задача решается довольно просто при помощи аргумента key функции sorted для указания функции, которая будет вызываться на каждом элементе до сравнения.
Подписывайтесь на канал 👉@pythonofff
Сортировка данных словаря по значениям ключей, а не по самим ключам, нередко ставит в тупик.
Задача решается довольно просто при помощи аргумента key функции sorted для указания функции, которая будет вызываться на каждом элементе до сравнения.
Подписывайтесь на канал 👉@pythonofff
👍3
Списковые включения.
В python можно заменить громоздкие циклы, которые используются для заполнения списков. Самый простой пример использования списковых включений представлен в первом примере.
В примере 2 показано как можно добавить немного математики.
Вы даже можете использовать свои функции, как в примере 3.
Ну и куда без условного оператора? Посмотреть пример в онлайн редакторе.
Подписывайтесь на канал 👉@pythonofff
В python можно заменить громоздкие циклы, которые используются для заполнения списков. Самый простой пример использования списковых включений представлен в первом примере.
В примере 2 показано как можно добавить немного математики.
Вы даже можете использовать свои функции, как в примере 3.
Ну и куда без условного оператора? Посмотреть пример в онлайн редакторе.
Подписывайтесь на канал 👉@pythonofff
👍8
Нахождение наиболее частых элементов списка
Если необходимо найти несколько наиболее часто повторяющихся значений, лучше воспользоваться счетчиком Counter из библиотеки collections.
Метод Counter.most_common(x) возвращает x кортежей, в которых первое значение – элемент, а второе – количество его повторений.
Подписывайтесь на канал 👉@pythonofff
Если необходимо найти несколько наиболее часто повторяющихся значений, лучше воспользоваться счетчиком Counter из библиотеки collections.
Метод Counter.most_common(x) возвращает x кортежей, в которых первое значение – элемент, а второе – количество его повторений.
Подписывайтесь на канал 👉@pythonofff
👍6
Получаем срез из бесконечного генератора
Допустим, мы хотим получить какой-то конечный список элементов из бесконечного генератора. Что нам для этого понадобится?
Для начала создадим сам генератор fib, уже немного знакомый вам по посту, где мы использовали lru_cache, правда там была рекурсивная функция. Этот генератор позволяет (за неимением другого слова) "генерировать" числа из последовательности Фибоначчи.
Чтобы получить желаемый срез, импортируем модуль itertools, в котором уже есть удобная функция islice, позволяющая осуществить срез генератора fib.
Подписывайтесь на канал 👉@pythonofff
Допустим, мы хотим получить какой-то конечный список элементов из бесконечного генератора. Что нам для этого понадобится?
Для начала создадим сам генератор fib, уже немного знакомый вам по посту, где мы использовали lru_cache, правда там была рекурсивная функция. Этот генератор позволяет (за неимением другого слова) "генерировать" числа из последовательности Фибоначчи.
Чтобы получить желаемый срез, импортируем модуль itertools, в котором уже есть удобная функция islice, позволяющая осуществить срез генератора fib.
Подписывайтесь на канал 👉@pythonofff
❤1
Функция zip
Функция zip создаёт итератор, который комбинирует элементы нескольких списков. Это позволяет осуществлять параллельный обход списков в циклах for или, например, выполнять параллельную сортировку.
Подписывайтесь на канал 👉@pythonofff
Функция zip создаёт итератор, который комбинирует элементы нескольких списков. Это позволяет осуществлять параллельный обход списков в циклах for или, например, выполнять параллельную сортировку.
Подписывайтесь на канал 👉@pythonofff
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
+1 в копилку годных каналов про Python
С @python_practics освоишь Python гораздо проще:
📌 полезные сниппеты кода для твоих задач
📌 теория Python понятным языком с примерами
📌 вопросы из собеседований
📌 бесплатные книги и курсы по Python
📌 тесты и опросы для тех, кто не запоминает сухую инфу
С @python_practics освоишь Python гораздо проще:
📌 полезные сниппеты кода для твоих задач
📌 теория Python понятным языком с примерами
📌 вопросы из собеседований
📌 бесплатные книги и курсы по Python
📌 тесты и опросы для тех, кто не запоминает сухую инфу
👍1
Функции all и any.
Названия этих функций говорят сами за себя. Функция all проверяет все ли элементы последовательности истинны. А функция any проверяет наличие хотя бы одной истинны.
Подписывайтесь на канал 👉@pythonofff
Названия этих функций говорят сами за себя. Функция all проверяет все ли элементы последовательности истинны. А функция any проверяет наличие хотя бы одной истинны.
Подписывайтесь на канал 👉@pythonofff
Свап значений переменных.
Бывают ситуации, когда нужно поменять значения переменных местами. И чтобы не захламлять код временными переменными, можно воспользоваться данным способом (внимание на 16 строку).
Посмотреть пример в онлайн редакторе.
Подписывайтесь на канал 👉@pythonofff
Бывают ситуации, когда нужно поменять значения переменных местами. И чтобы не захламлять код временными переменными, можно воспользоваться данным способом (внимание на 16 строку).
Посмотреть пример в онлайн редакторе.
Подписывайтесь на канал 👉@pythonofff
🤡2👍1
Функция reduce
Модуль functools позволяет хорошо раскрыть функциональные возможности Python. Например, в functools есть интересная функция reduce, которая позволяет «сжимать» данные, применяя последовательно функцию и запоминая результат.
Таким образом, в примере выше reduce умножает 1 на 2, затем результат этого умножения на 3 и так далее.
Подписывайтесь на канал 👉@pythonofff
Модуль functools позволяет хорошо раскрыть функциональные возможности Python. Например, в functools есть интересная функция reduce, которая позволяет «сжимать» данные, применяя последовательно функцию и запоминая результат.
Таким образом, в примере выше reduce умножает 1 на 2, затем результат этого умножения на 3 и так далее.
Подписывайтесь на канал 👉@pythonofff
👍3
Назначение функций по условию
Многие из вас знакомы с тернарным оператором, позволяющим записать простое условное выражение с if:
A = Y if X else Z
Интерпретатор выполняет выражение Y, если объект X – True, и Z, если X – False.
Но оказывается, тернарный оператор можно использовать не только для переменных, но и для функций.
Подписывайтесь на канал 👉@pythonofff
Многие из вас знакомы с тернарным оператором, позволяющим записать простое условное выражение с if:
A = Y if X else Z
Интерпретатор выполняет выражение Y, если объект X – True, и Z, если X – False.
Но оказывается, тернарный оператор можно использовать не только для переменных, но и для функций.
Подписывайтесь на канал 👉@pythonofff
👍9
Красивый вывод
Мы очень часто отлаживаем код и пользуемся функцией print. Вывод в одну строку не всегда удобен. К примеру, когда мы делаем запрос серверу и получаем огромный json.
Встроенный модуль pprint поможет нам навести красоту. С каждым новым вложением он делает дополнительный отступ и вывод всегда радует глаз.
Вот параметры, которые принимает pprint.pprint:
object - объект форматирования,
stream=None - поток форматированного вывода,
indent=1 - отступ последующего уровня вложенности,
width=80 - ширина экрана печати,
depth=None - показывать уровней вложенности,
compact=False - компактное форматирование,
sort_dicts=True - сортировка словаря перед форматированием,
Мы даже можем переопределить стандартную функцию print написав print = pprint.pprint
Выше приведен пример кода. Вы можете самостоятельно поэкспериментировать с модулем.
Подписывайтесь на канал 👉@pythonofff
Мы очень часто отлаживаем код и пользуемся функцией print. Вывод в одну строку не всегда удобен. К примеру, когда мы делаем запрос серверу и получаем огромный json.
Встроенный модуль pprint поможет нам навести красоту. С каждым новым вложением он делает дополнительный отступ и вывод всегда радует глаз.
Вот параметры, которые принимает pprint.pprint:
object - объект форматирования,
stream=None - поток форматированного вывода,
indent=1 - отступ последующего уровня вложенности,
width=80 - ширина экрана печати,
depth=None - показывать уровней вложенности,
compact=False - компактное форматирование,
sort_dicts=True - сортировка словаря перед форматированием,
Мы даже можем переопределить стандартную функцию print написав print = pprint.pprint
Выше приведен пример кода. Вы можете самостоятельно поэкспериментировать с модулем.
Подписывайтесь на канал 👉@pythonofff
👍5
Функция map
Привет, крайне часто начинающие программисты изобретают велосипеды при работе с коллекциями. Избежать часть таких ситуаций поможет знание map.
На вход принимает два обязательных аргмумента: функция-обработчик и итерируемый объект. Суть map’a заключается в том, что он применяет переданную функцию к каждому элементу последовательности. А возвращает так называемый map-объект, который в дальнейшем можно конвертировать в обычный список и не только.
Обратите внимание, в примере на картинке мы не пишем скобки у функции add_five при вызове map – это означает то, что мы передаем объект функции, а не результат её выполнения.
Подписывайтесь на канал 👉@pythonofff
Привет, крайне часто начинающие программисты изобретают велосипеды при работе с коллекциями. Избежать часть таких ситуаций поможет знание map.
На вход принимает два обязательных аргмумента: функция-обработчик и итерируемый объект. Суть map’a заключается в том, что он применяет переданную функцию к каждому элементу последовательности. А возвращает так называемый map-объект, который в дальнейшем можно конвертировать в обычный список и не только.
Обратите внимание, в примере на картинке мы не пишем скобки у функции add_five при вызове map – это означает то, что мы передаем объект функции, а не результат её выполнения.
Подписывайтесь на канал 👉@pythonofff
👍3🔥1
Узнать все о функции
Современные редакторы кода всегда помогут правильно написать функцию, а некоторые даже их параметры. Но что делать, если нужно узнать точно описание функции, методы или прочитать документацию?
Для всех этих действий существует две функции dir() и help(). Первая возвращает список всех доступных для функции методов. Вторая возвращает текстовую документацию.
Очень удобно использовать dir() когда не знаешь, как точно пишется метод.
С помощью help() можно узнать все об объекте и его методах даже без подключения к интернету.
Подписывайтесь на канал 👉@pythonofff
Современные редакторы кода всегда помогут правильно написать функцию, а некоторые даже их параметры. Но что делать, если нужно узнать точно описание функции, методы или прочитать документацию?
Для всех этих действий существует две функции dir() и help(). Первая возвращает список всех доступных для функции методов. Вторая возвращает текстовую документацию.
Очень удобно использовать dir() когда не знаешь, как точно пишется метод.
С помощью help() можно узнать все об объекте и его методах даже без подключения к интернету.
Подписывайтесь на канал 👉@pythonofff
👍4
Копирование словарей и других объектов
Новички часто допускают такую ошибку при создании копии списка:
lst2 = lst1
При работе с одним из словарей оказывается, что изменяются оба.
Почему так происходит?
Об этом — в завтрашнем посте. Пока что расскажу, как этого избежать:
У списка существует специальный метод copy(), который нужен как раз для таких случаев.
Но подобное работает не всегда! Если имеется множество вложенных списков, то надо сделать полное копирование импортировав модуль copy и воспользовавшись методом deepcopy().
Подписывайтесь на канал 👉@pythonofff
Новички часто допускают такую ошибку при создании копии списка:
lst2 = lst1
При работе с одним из словарей оказывается, что изменяются оба.
Почему так происходит?
Об этом — в завтрашнем посте. Пока что расскажу, как этого избежать:
У списка существует специальный метод copy(), который нужен как раз для таких случаев.
Но подобное работает не всегда! Если имеется множество вложенных списков, то надо сделать полное копирование импортировав модуль copy и воспользовавшись методом deepcopy().
Подписывайтесь на канал 👉@pythonofff
👍6
Присвоение первого непустого значения из ряда
Следующая инструкция присвоит первый непустой (имеющий истинное значение) объект из множества объектов A, B и С. Или None, если все предыдущие объекты окажутся пустыми.
Подписывайтесь на канал 👉@pythonofff
Следующая инструкция присвоит первый непустой (имеющий истинное значение) объект из множества объектов A, B и С. Или None, если все предыдущие объекты окажутся пустыми.
Подписывайтесь на канал 👉@pythonofff
Почему присвоение не является копированием?
В python все является объектом. В этом легко убедится воспользовавшись функцией dir().
При присвоении в новую переменную отправляется ссылка на объект. А при изменении объекта ссылка на него не меняется.
Тут многие могут спросить про строки и числа, поэтому отвечаю — с ними то же самое. Просто при операциях не изменяется старый объект, а создается новый. Все это можно проследить воспользовавшись функцией id(), которая показывает номер объекта.
Интересно то, что за частью чисел в языке на программном уровне закреплена ссылка на объект. Можете попробовать сами.
Подписывайтесь на канал 👉@pythonofff
В python все является объектом. В этом легко убедится воспользовавшись функцией dir().
При присвоении в новую переменную отправляется ссылка на объект. А при изменении объекта ссылка на него не меняется.
Тут многие могут спросить про строки и числа, поэтому отвечаю — с ними то же самое. Просто при операциях не изменяется старый объект, а создается новый. Все это можно проследить воспользовавшись функцией id(), которая показывает номер объекта.
Интересно то, что за частью чисел в языке на программном уровне закреплена ссылка на объект. Можете попробовать сами.
Подписывайтесь на канал 👉@pythonofff
👍3
Как отправить post запрос в Python?
Для того, чтобы отправить post-запрос, нам нужно воспользоваться библиотекой requests.
Как мы видим - сервер получил наши данные.
В качестве отправных данных можно поставить любые значения - данный сервер их примет.
Подписывайтесь на канал 👉@pythonofff
Для того, чтобы отправить post-запрос, нам нужно воспользоваться библиотекой requests.
Как мы видим - сервер получил наши данные.
В качестве отправных данных можно поставить любые значения - данный сервер их примет.
Подписывайтесь на канал 👉@pythonofff
Форматирование строк
Часто приходится работать со строкой и выводить различные данные. Не проблема, когда нужно вывести что-то короткое:
print('Hello', name). Но чаще строки нужны для отображения на формах, а не через print(). Еще чаще вывод должен быть намного сложнее.
В python3 есть очень удобный способ. Нужно поставить f перед строкой а в фигурных скобках {} написать нужную переменную. Если же эти скобки понадобились в тексте, то достаточно написать их дважды, чтобы экранировать.
Еще один способ — воспользоваться методом format(). Суть та же, но на этот раз без добавления f и добавления переменных как аргументов.
Подписывайтесь на канал 👉@pythonofff
Часто приходится работать со строкой и выводить различные данные. Не проблема, когда нужно вывести что-то короткое:
print('Hello', name). Но чаще строки нужны для отображения на формах, а не через print(). Еще чаще вывод должен быть намного сложнее.
В python3 есть очень удобный способ. Нужно поставить f перед строкой а в фигурных скобках {} написать нужную переменную. Если же эти скобки понадобились в тексте, то достаточно написать их дважды, чтобы экранировать.
Еще один способ — воспользоваться методом format(). Суть та же, но на этот раз без добавления f и добавления переменных как аргументов.
Подписывайтесь на канал 👉@pythonofff
👍1
Кортежи - tuple()
По своей сути кортежи это тот же список, но который имеет ряд преимуществ (если его правильно применять).
Кортежи занимают меньше места, в отличии от списка, но тюплы не изменяются. Их неизменность применяется для большей безопасности. Кроме того, кортежи быстрее работают.
На самом деле каждый из нас использовал tuple, просто не знал, что он им является. При создании списков используются квадратные скобки или функция list(), а для кортежей обычные скобки или tuple().
Как и списки кортежи можно сравнивать между собой. Правила при этом те же.
Используйте tuple, если вам нужен неизменяемый список или нужно получить и сразу же работать со значениями.
Подписывайтесь на канал 👉@pythonofff
По своей сути кортежи это тот же список, но который имеет ряд преимуществ (если его правильно применять).
Кортежи занимают меньше места, в отличии от списка, но тюплы не изменяются. Их неизменность применяется для большей безопасности. Кроме того, кортежи быстрее работают.
На самом деле каждый из нас использовал tuple, просто не знал, что он им является. При создании списков используются квадратные скобки или функция list(), а для кортежей обычные скобки или tuple().
Как и списки кортежи можно сравнивать между собой. Правила при этом те же.
Используйте tuple, если вам нужен неизменяемый список или нужно получить и сразу же работать со значениями.
Подписывайтесь на канал 👉@pythonofff
👍1