IT-юмор
Телеграм - Смешно до икоты!
Телеграм - Смешно до икоты!
Доброе утро!
Продолжаю изучать теорию Джанго, опять перестал понимать. Дочитаю и перейду к проекту.
Вопрос: Что может быть ключом в словаре ?
Словарь — это коллекция элементов, которая хранит данные в парах ключ-значение. Ключ в словаре может быть любым неизменяемым типом данных: числами, строками, кортежами. Главное требование к ключу — он должен быть уникальным в рамках одного словаря и хешируемым.
Хешируемость означает, что объект должен иметь хеш-значение, которое не изменяется на протяжении всего времени существования объекта. Это необходимо для того, чтобы Python мог быстро находить значение по ключу. Если бы ключи были изменяемыми, их хеш-значения могли бы измениться, и это привело бы к тому, что значение по ключу стало бы невозможно найти.
Примеры ключей в словаре:
Строки - самый часто используемый тип ключа. Строки удобны, поскольку они легко читаемы и понятны.
my_dict = {"name": "Alice", "age": 25}
Числа - также могут использоваться в качестве ключей. Это могут быть целые числа или числа с плавающей точкой.
my_dict = {1: "one", 2: "two"}
Кортежи - могут быть ключами, если все их элементы неизменяемы. Это делает их полезными для комплексных ключей.
my_dict = {(1, 2): "point", (3, 4): "another point"}
Изменяемые типы данных, такие как списки или другие словари, не могут быть ключами, потому что они не хешируемы.
Ключи в словаре Python — это неизменяемые и хешируемые объекты, такие как строки, числа или кортежи. Это обеспечивает эффективный доступ и хранение данных. В качестве ключей используются данные, которые легко идентифицировать и которые не изменяются во время работы программы.
Мой канал по python: https://t.me/python_scrypt (полезная инфа, обзор библиотек)
Если статья информативная то прошу поддержать плюсом) всем спасибо за просмотр!)
Ответ: Списки, кортежи и словари являются основными типами данных в Python. Они имеют разные свойства и используются для разных целей.
Списки (list) являются изменяемыми коллекциями элементов. Они могут быть изменены в процессе выполнения программы, например, можно добавить или удалить элементы. Списки создаются с помощью квадратных скобок, например:
my_list = [1, 2, 3].
Кортежи (tuple) также являются коллекциями элементов, но они являются неизменяемыми, то есть их нельзя изменить после создания. Кортежи обычно используются, когда нам нужно передать данные в функцию без возможности их изменения. Это помогает обеспечить безопасность и надежность вашего кода. Кортежи создаются с помощью круглых скобок, например:
my_tuple = (1, 2, 3).
Словари (dictionary) представляют собой коллекции пар ключ-значение. Ключи должны быть уникальными, а значения могут повторяться. Словари используются для быстрого доступа к данным на основе ключа. Они также позволяют хранить данные разных типов в одном словаре. Словари создаются с помощью фигурных скобок и пары ключ-значение разделяются двоеточием, например:
my_dict = {“key1”: “value1”, “key2”: “value2”}.
P. S. Привел тут не все признаки, в следующих статьях больше раскрою тему
Мой канал по python: https://t.me/python_scrypt (полезная инфа, обзор библиотек)
Если статья информативная то прошу поддержать плюсом) всем спасибо за просмотр!)
Так, ну что там с обучением. Продолжаю грызть гранит джанги. Разбираюсь с орм и принципом mtv в питонячем фреймворке. А то сайт написал, а как он работает, не понимаю. Сейчас прочитаю теорию и снова за практику.
Довольно полезная библиотека Python - Bark 🐶.
Инструмент для преобразования текста в аудио! 🎵 Абсолютно БЕСПЛАТЫЙ инструмент.
"Bark - это основанная на трансформерах модель преобразования текста в аудио, созданная компанией Suno.
Bark может генерировать очень реалистичную многоязычную речь, а также другие звуки, включая музыку, фоновый шум и простые звуковые эффекты.
Модель также может генерировать невербальные коммуникации, такие как смех, вздохи и плач.
Автор: Паджанкар Эшвин
Год: 2020
Количество страниц: 279
Здесь представлен перевод книги Pajankar А. - Raspberry Pi Computer Vision Programming Second Edition. Компьютерное зрение и обработка изображений превратились из области нишевых исследований в повседневное использование. Однако, несмотря на эту революцию, одной из ключевых проблем, возникающих при разработке компьютерного зрения и разработке приложений, является отсутствие хорошо продуманного руководства, которое шаг за шагом учит вас, как это работает. Эта книга решает эту ключевую проблему.
Получение адреса по координатам, довольно полезная функция, которую можно использовать в различных целях. Например, вам скинули геолокацию. Можно сделать телеграм-бота, отправить ему полученные данные и в ответ получить адрес. Данный функционал можно реализовать на Python. Давайте посмотрим, как это можно сделать.
Для получения адреса по геолокации будем использовать библиотеку geopy. В ней реализованы классы для работы с сервисами геокодирования, такими как OpenStreetMap Nominatim, Google Geocoding API (V3) и многими другими. В нашем коде мы будем использовать OpenStreetMap, так как его использование бесплатно и не требует получения дополнительных ключей.
Установка библиотеки
Для установки библиотеки пишем в терминале команду:
pip install geopy
Импорт модулей в скрипт
После того, как библиотека будет установлена, необходимо импортировать модули для работы с ней в скрипт. Пишем следующий код:
Получаем адрес по координатам. Обратное геокодирование
Создадим функцию get_addr(location: list) -> str, которая на входе получаем широту и долготу в виде списка, а возвращает адрес в виде строки. В случае ошибки будет возвращен текст «Unknown».
После этого инициализируем класс Nominatim и передаем в него user_agent. Здесь использование какого-то специализированного агента не принципиально и можно просто передать «GetLoc». Если мы заглянем в параметры данного класса, то увидим, что в него, кроме user_agent можно передать таймаут, прокси и еще множество других параметров, которые в данном случае не принципиальны.
Обратимся к инициализированному классу и его методу reverse, в который передадим координаты в виде списка с широтой и долготой. В ответ мы получим адрес, который и возвратим из функции, обратившись к методу address.
Запрос координат у пользователя. Вывод полученного адреса в терминал
Создадим функцию main(), в которой будем запрашивать широту и долготу у пользователя. После передадим их в функцию get_addr и выведем полученный результат в терминал. Здесь необходимо немного обработать полученные данные, так как они возвращаются в обратном порядке, начиная с номера дома и заканчивая страной. Поэтому, добавлена обратная сортировка, разбиение строки по запятой в список и обратное его объединение.
Тестирование функции
Протестируем написанный код. Возьмем произвольные координаты объекта с Яндекс.Карты и введем в запросе скрипта. В ответе мы видим полученный адрес, который совпадает с тем, что указан на Картах.
Итог:
Как видим, с помощью использования сторонней библиотеки получить адрес по координатам не такая уж сложная задача. К слову, возникновение исключений, когда адрес не был найден, происходит достаточно редко. В большинстве случаев все отрабатывает корректно.
Взять с собой побольше вкусняшек, запасное колесо и знак аварийной остановки. А что сделать еще — посмотрите в нашем чек-листе. Бонусом — маршруты для отдыха, которые можно проехать даже в плохую погоду.