Вычисление Города, Региона, Страны по IP 🤔
В Python есть библиотека ip2geotools, с ее помощью можно узнать данные местоположения.
Перед запуском кода установите библиотеку:
В Python есть библиотека ip2geotools, с ее помощью можно узнать данные местоположения.
Перед запуском кода установите библиотеку:
pip install ip2geotoolsКод:
from ip2geotools.databases.noncommercial import DbIpCity#ip2geotools
ip = 'сюда IP'
response = DbIpCity.get(ip, api_key='free')
print(f'Город - {response.city}\n'
f'Регион - {response.region}\n'
f'Страна - {response.country}\n'
f'Долгота - {response.latitude}\n'
f'Широта - {response.longitude}')
Продолжаем тему отладки
Запуск из скрипта (второй способ)
Вы можете задать контрольные точки в коде, что позволит изучить значения переменных и другие параметры в конкретный момент выполнения программы. Это возможно при помощи метода
🔸
🔸
🔸
🔸
🔸
#отладка #pdb
Запуск из скрипта (второй способ)
Вы можете задать контрольные точки в коде, что позволит изучить значения переменных и другие параметры в конкретный момент выполнения программы. Это возможно при помощи метода
pdb.set_trace()
. Вот пример:import pdb
def make_prog():
pdb.set_trace()
return "Python nation"
print(make_prog())
Попробуйте запустить этот код. Отладчик откроется сразу после запуска скрипта. Теперь пришло время вспомнить команды отладчика.🔸
c
: продолжить выполнение программы🔸
w
: отобразить окружение текущей исполняемой инструкции🔸
a
: отобразить список аргументов текущей функции🔸
s
: исполнить текущую строчку кода и остановиться по возможности🔸
n
: продолжить исполнение программы пока не будет достигнута следующая строка текущей функции или пока функция не завершит свою работу.#отладка #pdb
Определение страны и оператора по номеру телефона
phonenumbers - один из модулей, который предоставляет множество функций, таких как предоставление базовой информации о номере телефона, проверка номера телефона и т. д.
В этом посте мы рассмотрели лишь парочку функций.
Перед запуском установите пакет:
phonenumbers - один из модулей, который предоставляет множество функций, таких как предоставление базовой информации о номере телефона, проверка номера телефона и т. д.
В этом посте мы рассмотрели лишь парочку функций.
Перед запуском установите пакет:
pip install phonenumbers
#phonenumbersСканирование QR-кода с помощью камеры
Несколькими постами раньше мы научились генерировать QR-код.
Теперь пришло время научится считывать его.
Перед запуском кода установите пакет:
#opencv
Несколькими постами раньше мы научились генерировать QR-код.
Теперь пришло время научится считывать его.
Перед запуском кода установите пакет:
pip3 install opencv-python
После того как ваш программный код начнет "скрипеть колесами" включится веб-камера и вы, в свою очередь, поднесите QR-код к камере которая будет считывать информацию.#opencv
Reduce весьма полезная функция для выполнения вычислений на списке и возвращения единственного результата. Она сворачивает список, применяя полученную в качестве аргумента функцию по очереди к последовательным парам элементов.
Например, если мы хотим посчитать произведение всех элементов списка чисел. Пример на картинке👆
#reduce
Например, если мы хотим посчитать произведение всех элементов списка чисел. Пример на картинке👆
#reduce
FuzzyWuzzy - топовая библиотека для нечёткого сравнения строк.
Например, если сравнить две строчки
Также в библиотеке есть частичное сравнение и сравнение слов без учета их позиций в предложении.
Перед запуском кода установите пакет:
Например, если сравнить две строчки
hello
и hell
, то окажется что они на 89% похожи.Также в библиотеке есть частичное сравнение и сравнение слов без учета их позиций в предложении.
Перед запуском кода установите пакет:
pip install fuzzywuzzy[speedup]
Метод
Часто разработчики используют квадратные скобки, чтобы получить значение из словаря. Но когда нужно получить значение из словаря безопасным способом рекомендуется использовать метод
При попытке использования синтаксиса с квадратными скобками для выборки по ключу, отсутствующему в словаре, мы получим ошибку
Чтобы избежать подобной ситуации, используется метод
Также вместо
#get() #словарь #None #KeyError
get()
для словаряЧасто разработчики используют квадратные скобки, чтобы получить значение из словаря. Но когда нужно получить значение из словаря безопасным способом рекомендуется использовать метод
get()
.При попытке использования синтаксиса с квадратными скобками для выборки по ключу, отсутствующему в словаре, мы получим ошибку
KeyError
.Чтобы избежать подобной ситуации, используется метод
get()
. Этот метод возвращает значение для данного ключа, если оно есть в словаре. Если нет, то он вернет None
(если get()
используется только с одним аргументом).Также вместо
None
можно получить своё значение указав его вторым аргументом в методе get()
.#get() #словарь #None #KeyError
Один из лучших способов ускорения кода — это встроенные функции
Почему они такие быстрые? Потому что реализованы на языке
Поэтому в целях более быстрого выполнения кода стоит отдать предпочтение им, а не писать функции вручную.
Python
. Их нужно использовать при любой возможности. Эти встроенные функции хорошо протестированы и оптимизированы.Почему они такие быстрые? Потому что реализованы на языке
C
. Это относится к таким встроенным функциям Python
, как min
, max
, all
, map
и другим.Поэтому в целях более быстрого выполнения кода стоит отдать предпочтение им, а не писать функции вручную.
Многопроцессорная обработка
Если ваш компьютер выполняет более одного процесса, тогда присмотритесь к многопроцессорной обработке в Python.
Она разрешает распараллеливание в коде. Многопроцессорная обработка весьма затратна, поскольку вам придется инициировать новые процессы, обращаться к общей памяти и т.д., поэтому пользуйтесь ей только для большого количества разделяемых данных. Для небольших объемов данных многопроцессорная обработка не всегда оправдана.
Если ваш компьютер выполняет более одного процесса, тогда присмотритесь к многопроцессорной обработке в Python.
Она разрешает распараллеливание в коде. Многопроцессорная обработка весьма затратна, поскольку вам придется инициировать новые процессы, обращаться к общей памяти и т.д., поэтому пользуйтесь ей только для большого количества разделяемых данных. Для небольших объемов данных многопроцессорная обработка не всегда оправдана.
dims в качестве переменных
В большинстве языков, чтобы получить набор переменных в массиве, нужно или последовательно в цикле перебирать значения массива, или обращаться к dims по позиции следующим образом:
В большинстве языков, чтобы получить набор переменных в массиве, нужно или последовательно в цикле перебирать значения массива, или обращаться к dims по позиции следующим образом:
firstdim = array[1]В Python существует куда более классный и быстрый способ чтобы превратить список значений в переменные, просто задайте имена переменных равными массиву той же длины.
Python позволяет вам возвращать из функции несколько значений.
Для этого необходимо вернуть структуру данных, содержащую эти несколько значений. Например, список количества английских слов, которые надо выучить за день.
Еще несколько значений можно возвращать, перечислив их через запятую после команды
Для этого необходимо вернуть структуру данных, содержащую эти несколько значений. Например, список количества английских слов, которые надо выучить за день.
Еще несколько значений можно возвращать, перечислив их через запятую после команды
return
.Ключевое слово nonlocal
Похожее по функционалу на
Поведение
Основное различие с
Похожее по функционалу на
global
, ключевое слово nonlocal
позволяет обращаться к переменным из нелокальной области видимости.Поведение
nonlocal
заключается в том, что интерпретатор ищет переменную в ближайшей области видимости.Основное различие с
global
в том, что с помощью nonlocal
нельзя получить переменные из глобальной области видимости.Все знают как делать, привычный для нас перебор, к примеру от
Но иногда нам нужно перебрать последовательность в обратном порядке и для этого можно использовать функцию
#reversed
0
до 5
Но иногда нам нужно перебрать последовательность в обратном порядке и для этого можно использовать функцию
reversed
как на примере выше.#reversed
Практически в любой программе необходимо проверять, являются ли переменные / списки / словари / ... пустыми. На этих проверках тоже можно немножко сэкономить.
Не следует явно указывать
Не следует явно указывать
== True
или is True
в условии if
, достаточно указать имя переменной, которая проверяется. Это экономит ресурсы, которые использует «магическая» функция __eq__
для сравнения значений.Программист на Python может узнать, какие именно переменные определенны в данный момент в интерпретаторе. Переменные можно разделить на локальные и глобальные. Глобальные определены на верхнем уровне кода снаружи функций и классов. Локальные переменные наоборот определены внутри своих зон видимости, ограниченных классами и функциями.
Функция
#globals()
Функция
globals()
всегда возвращает словарь глобальных переменных.#globals()
Функция
Обратите внимание, что переменная
Как вы уже могли заметить в список переменных входят не только простые переменные, которые вы определяете через знак присваивания, но и функции, классы, а также импортированные модули.
locals()
возвращает словарь только локальных переменных.Обратите внимание, что переменная
y
в locals()
имеет другое значение, нежели чем в globals()
. Это две разные переменные из разных областей, но внутри функции приоритет имеет локальная y
.Как вы уже могли заметить в список переменных входят не только простые переменные, которые вы определяете через знак присваивания, но и функции, классы, а также импортированные модули.
Друзья, у Python комьюнити 2 праздника:
1️⃣ Вышел Python 3.10. Вы уже обновили версию Python?
2️⃣ Впервые за более чем 20 лет язык программирования Python занял 1-е место в рейтинге TIOBE! 🎉 Первенство Java и C закончилось. Python, который начинался как простой язык сценариев как альтернатива Perl, стал зрелым. Простота обучения, огромное количество библиотек и широкое использование, во всех областях, сделали его самым популярным языком программирования на сегодняшний день.Поздравляем нас и в первую очередь Гвидо ван Россума.
1️⃣ Вышел Python 3.10. Вы уже обновили версию Python?
2️⃣ Впервые за более чем 20 лет язык программирования Python занял 1-е место в рейтинге TIOBE! 🎉 Первенство Java и C закончилось. Python, который начинался как простой язык сценариев как альтернатива Perl, стал зрелым. Простота обучения, огромное количество библиотек и широкое использование, во всех областях, сделали его самым популярным языком программирования на сегодняшний день.Поздравляем нас и в первую очередь Гвидо ван Россума.
Вы, наверное, слышали фразу "wild import - зло". В коде это выглядит так:
Как же быть? Можно поочерёдно импортировать только нужные переменные и функции/классы, но это плохая практика если у вас много импортов. Ведь должен быть альтернативный вариант.
Он есть - это переменная
Например, есть некий
from my_module import *
Ответ почему это "зло" очень простой - вы импортируете всё - то что надо и то что не надо. Как же быть? Можно поочерёдно импортировать только нужные переменные и функции/классы, но это плохая практика если у вас много импортов. Ведь должен быть альтернативный вариант.
Он есть - это переменная
__all__
.__all__
в Python - это список публичных объектов данного модуля.Например, есть некий
my_module.py
, в нём очень много объектов, и не требуется давать пользоваться ими всеми. В my_module.py
вы списком определяете названия объектов, которые можно импортировать:__all__ = ["MyClass", "MyClass2"]И тогда конструкция
from my_module import *Импортирует только те объекты, которые вы описали в
__all__
.