Программы для программирования
20 subscribers
849 photos
1 video
26 files
41 links
Download Telegram
Forwarded from Python Education
JSON-объект

JSON-объект
— это неупорядоченное множество пар «ключ:значение», заключённых в фигурные скобки { } и взаимодействие с ним проходит, как со словарем.

Ключ — это название параметра (свойства), который мы передаём серверу. Он служит маркером для принимающей запрос системы, чтобы она поняла, что мы ей отправили.

Значение может быть не только строкой или числом. Это может быть и другой объект! Или массив, или объект в массиве, массив в объекте… Абсолютно любое количество уровней вложенности!

Если мы говорим о параметрах, то в кавычки помещаются только строки, все остальное — нет.

Переносы строк делать необязательно. Вообще пробелы и переносы нужны только человеку для читабельности, система поймёт и без них.

Ключ — ВСЕГДА строка, и мы в любом случае берём его в кавычки.

Ключи могут быть записаны в любом порядке, ведь, JSON-объект — это неупорядоченное множество пар «ключ:значение».

#JSON
Forwarded from Python Education
dir

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

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

Больше можно узнать в официальной документации.
Forwarded from Python Education
get() vs dict[key]

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

Но если воспользуетесь методом get(), то получите пустое значение

Также у этого метода есть второй передаваемый аргумент, который будет предаваться если ключа нет

#JSON
Forwarded from Python Education
from __future__ import

Одним из последствий популярности Python является то, что постоянно разрабатываются и выходят новые версии. Новые версии — новые возможности, но только не для вас, если вы пользуетесь устаревшей.

Впрочем, не всё так плохо. Модуль __future__ даёт возможность импортировать функциональность будущих версий Python. Это прямо как путешествие во времени, или магия
Forwarded from Python Education
JSON-массив

Массив заключен в квадратные скобки [ ].

["MALE", "FEMALE"]

Внутри квадратных скобок идет набор значений, разделённых запятыми. Здесь нет ключей, как в объекте, поэтому обращаться к массиву можно только по номеру элемента. И поэтому в случае массива менять местами данные внутри нельзя. Это упорядоченное множество значений, так что порядок важен.

#JSON
Forwarded from Python Education
geopy

Программистам может быть сложно ориентироваться в географии. Однако модуль geopy всё упрощает:

$ pip install geopy

Он работает путём абстрагирования API разных сервисов геокодирования. Этот модуль даёт возможность узнать полный адрес места, его долготу и широту и даже высоту.

Также в нём есть полезный класс Distance. Он высчитывает расстояние между двумя местами в удобной единице измерения.
Forwarded from Python Education
howdoi

Зависли над какой-то проблемой и не можете вспомнить её решение? Нужно зайти на StackOverflow, но не хочется покидать терминал?

Тогда вам не обойтись без этого инструмента командной строки:

$ pip install howdoi

Задайте любой вопрос, и он постарается найти ответ на него:

$ howdoi vertical align css
$ howdoi for loop in java
$ howdoi undo commits in git

Но будьте осторожны: он извлекает код из топовых ответов на StackOverflow и не всегда даёт полезную информацию:

$ howdoi exit vim
Forwarded from Python Education
Well Formed JSON

JSON должен быть well formed, то есть синтаксически правильный.

Правила well formed JSON:

• Данные написаны в виде пар «ключ:значение»
• Данные разделены запятыми
• Объект находится внутри фигурных скобок { }
• Массив — внутри квадратных [ ]

Чтобы проверить JSON на синтаксис, можно использовать любой JSON Validator. Я использую JSON Formatter, он не только проверяет корректность синтаксиса, но и форматирует JSON в читабельный визуальный формат!

#JSON
Forwarded from Python Education
inspect

Модуль inspect пригодится для понимания того, что происходит за кулисами в Python. Вы даже можете вызывать его методы на них самих!

Ниже используется метод inspect.getsource() для вывода его собственного исходного кода. Также используется метод inspect.getmodule() для вывода модуля, в котором его определили.

Последняя команда выводит номер строки, на которой она сама находится

Конечно, кроме таких банальных применений этот модуль может оказаться полезным для понимания того, что делает ваш код. Также вы можете использовать его, чтобы писать самодокументированный код.
Forwarded from Python Education
Итого по #JSON

JSON (JavaScript Object Notation) — текстовый формат обмена данными, основанный на JavaScript, но может использоваться в любом языке программирования. Легко читается человеком и машиной. Часто используется в REST API (чаще, чем XML из-за лучшей читабельности и меньшего веса).

Корректные значения JSON:

• JSON-объект — неупорядоченное множество пар «ключ:значение», заключённое в фигурные скобки { };
• массив — упорядоченный набор значений, разделённых запятыми. Находится внутри квадратных скобок [ ];
• число (целое или вещественное);
• литералы true (логическое значение «истина»), false (логическое значение «ложь») и null;
• строка.
Forwarded from Python Education
**kwargs

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

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

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

Это полезно в тех случаях, когда ваши функции должны обрабатывать именованные аргументы, не определённые заранее.
Forwarded from Python Education
Jedi

Библиотека Jedi предназначена для автодополнения и анализа кода. Она ускоряет процесс написания кода и делает его более продуктивным.

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

Возможно, вы уже встречались с Jedi — IPython использует эту библиотеку для автодополнения.
Forwarded from Python Education
map

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

Здесь map() применяет простую лямбда-функцию на каждом элементе x и возвращает объект map, который можно преобразовать в какой-нибудь итерируемый объект вроде списка или кортежа.
Forwarded from Python Education
Что такое logging?

Модуль logging в Python — это набор функций и классов, которые позволяют регистрировать события, происходящие во время работы кода. Этот модуль входит в стандартную библиотеку, поэтому для его использования достаточно написать лишь одну строку:

import logging

Основная функция, которая пригодится Вам для работы с этим модулем — basicConfig(). В ней Вы будете указывать все основные настройки (по крайней мере, на базовом уровне).

У функции basicConfig() 3 основных параметра:

level — уровень логирования на Python;
filename — место, куда мы направляем логи;
format — вид, в котором мы сохраняем результат.
Forwarded from Python Education
pprint

Стандартная функция Python print() делает своё дело. Но если попытаться вывести какой-нибудь большой вложенный объект, результат будет выглядеть не очень приятно.

Здесь на помощь приходит модуль из стандартной библиотеки pprint (pretty print). С его помощью можно выводить объекты со сложной структурой в читабельном виде.

Мастхэв для любого Python-разработчика, работающего с нестандартными структурами данных
Forwarded from Python Education
Перегрузка операторов

Когда-нибудь задумывались, почему Python позволяет использовать оператор + как для сложения чисел, так и для конкатенации строк? За этим как раз и стоит перегрузка операторов.

Вы можете определять объекты, которые используют стандартные символы операторов любым образом. Это позволяет применять их в контексте объектов, с которыми вы работаете
Forwarded from Python Education
__repr__

При определении класса или объекта полезно добавлять «официальный» способ представления объекта строкой. Это сильно упрощает отладку.

Метод __repr__() позволяет определять строковое представление, предназначенное для программиста и удобное при использовании во время отладки, а метод __str__() позволяет определять понятное пользователю строковое представление, которое можно отображать в интерфейсе программы.
Forwarded from Python Education
Принципы программирования. Часть 1

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

KISS
Keep It Stupid Simple - придерживайся простоты. Хороший пример этому - побитовые операции и регулярки. Это не означает, что их нельзя использовать. Но не надо использовать их там, где это не нужно. Чем проще написан код, тем легче его поддерживать вам и вашим коллегам.

DRY
Don’t Repeat Yourself - не повторяйся. Не следует дублировать код. Вместо копирования нужно создать функцию. В будущем это упростит отладку и изменение кода. Особенно в больших программах.
🏆1
Forwarded from Python Education
sh

Python — отличный скриптовый язык. Но иногда стандартные библиотеки os и subprocess вызывают только головную боль.

Библиотека sh может стать приятной альтернативой.

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

Библиотека sh поддерживает только платформы Linux и macOS; для работы на Windows вам придётся поискать другой инструмент.
Forwarded from Python Education
Принципы программирования. Часть 2

В прошлом посте мы начали разбирать принятые принципы программирования и их аббревиатуры.

YAGNI
You Aren’t Gonna Need It - тебе это не понадобится. Неправильно создавать места только для будущего расширения кода. Неизвестно точно, какой именно понадобится функционал и возможно код будет мешать новому (речь не идет о заглушках на заказанный функционал).

SLAP
Single
Level of Abstraction Principle - принцип единого уровня абстракций. Код должен оставаться поддерживаемым, особенно функции. Если функция не помещается на экран, то ее следует разбить на несколько других функций.
«Функции должны выполнять только одно действие, но выполнять его хорошо» (Роберт Мартин). В частности напоминает принцип DRY, но сильно отличается, код не обязательно должен повторяться. Но должен быть разбит на логические блоки, для большего удобства