Введение
В данной статье мы напишем 5 простых и полезных программ на языке программирования Python.
Получение прогноза погоды на Python
Для получения погоды мы будем использовать API OpenWeatherMap, который предоставляет разнообразные данные о погоде по всему миру.
Установка библиотеки requests
Перед написанием кода необходимо установить библиотеку requests, для этого можно перейти в терминал/командную строку, прописать pip install requests и нажать Enter.
Получение ключа API
Для использования OpenWeatherMap API необходим персональный ключ, который можно получить, зарегистрировавшись на их сайте. Данный ключ используется для аутентификации в запросах.
Написание кода
Импорт библиотеки requests
Первым делом импортируем ранее установленную библиотеку requests:
import requests
Пишем функцию для получения погоды
Создадим функцию, которую назовём get_weather(), в которой будет присутствовать один параметр, а именно:
- city — название города, в котором необходимо узнать погоду
Также укажем, что функция ничего не возвращает.
import requests
def get_weather(city: str) -> None:
Внутри функции первым делом укажем ключ API, ссылку на API и словарь, в котором будет храниться название города, единица измерения, язык и API:
import requests
def get_weather(city: str) -> None:
api_key = '79d1ca96933b0328e1c7e3e7a26cb347'
base_url = 'https://api.openweathermap.org/data/2.5/weather'
params = {
'q': city,
'units': 'metric',
'lang': 'ru',
'appid': api_key
}
Далее будет идти конструкция try … except. В try будет выполняться GET-запрос с указанными параметрами и получение результата. После этого из json-ответа будут получены необходимые данные, сохранены в соответствующие переменные и выведены:
import requests
def get_weather(city: str) -> None:
api_key = '79d1ca96933b0328e1c7e3e7a26cb347'
base_url = 'https://api.openweathermap.org/data/2.5/weather'
params = {
'q': city,
'units': 'metric',
'lang': 'ru',
'appid': api_key
}
try:
response = requests.get(base_url, params=params)
response.raise_for_status()
weather_data = response.json()
temperature = weather_data['main']['temp']
temperature_feels = weather_data['main']['feels_like']
wind_speed = weather_data['wind']['speed']
cloud_cover = weather_data['weather'][0]['description']
humidity = weather_data['main']['humidity']
print(f'Температура воздуха: {temperature}°C')
print(f'Ощущается как: {temperature_feels}°C')
print(f'Ветер: {wind_speed} м/с')
print(f'Облачность: {cloud_cover}')
print(f'Влажность: {humidity}%')
В except будут обрабатываться ошибки:
import requests
def get_weather(city: str) -> None:
api_key = '79d1ca96933b0328e1c7e3e7a26cb347'
base_url = 'https://api.openweathermap.org/data/2.5/weather'
params = {
'q': city,
'units': 'metric',
'lang': 'ru',
'appid': api_key
}
try:
response = requests.get(base_url, params=params)
response.raise_for_status()
weather_data = response.json()
temperature = weather_data['main']['temp']
temperature_feels = weather_data['main']['feels_like']
wind_speed = weather_data['wind']['speed']
cloud_cover = weather_data['weather'][0]['description']
humidity = weather_data['main']['humidity']
print(f'Температура воздуха: {temperature}°C')
print(f'Ощущается как: {temperature_feels}°C')
print(f'Ветер: {wind_speed} м/с')
print(f'Облачность: {cloud_cover}')
print(f'Влажность: {humidity}%')
except requests.RequestException as e:
print(f'Ошибка при запросе погоды: {e}')
except KeyError:
print(f'Не удалось определить город: {city}')
Вызов функции
Можем вызвать функцию и проверить как она работает:
import requests
def get_weather(city: str) -> None:
api_key = '79d1ca96933b0328e1c7e3e7a26cb347'
base_url = 'https://api.openweathermap.org/data/2.5/weather'
params = {
'q': city,
'units': 'metric',
'lang': 'ru',
'appid': api_key
}
try:
response = requests.get(base_url, params=params)
response.raise_for_status()
weather_data = response.json()
temperature = weather_data['main']['temp']
temperature_feels = weather_data['main']['feels_like']
wind_speed = weather_data['wind']['speed']
cloud_cover = weather_data['weather'][0]['description']
humidity = weather_data['main']['humidity']
print(f'Температура воздуха: {temperature}°C')
print(f'Ощущается как: {temperature_feels}°C')
print(f'Ветер: {wind_speed} м/с')
print(f'Облачность: {cloud_cover}')
print(f'Влажность: {humidity}%')
except requests.RequestException as e:
print(f'Ошибка при запросе погоды: {e}')
except KeyError:
print(f'Не удалось определить город: {city}')
if __name__ == "__main__":
city = input('Введите город, в котором хотите узнать погоду: ')
get_weather(city)
Проверка работы кода
Генерация qr-кода на Python
Установка и импорт библиотеки qrcode
Перед написанием кода необходимо установить библиотеку qrcode, для этого можно перейти в терминал/командную строку, прописать pip install qrcode и нажать Enter. После инсталляции мы её импортируем:
import qrcode
Пишем функцию для генерации qr-кода
Создадим функцию, которую назовём generate_qr_code(), в которой будет присутствовать два параметра, а именно:
- data — текст/URL для создания qr-кода
- filename — название итогового файла qr-кода
import qrcode
def generate_qr_code(data, filename):
Внутри функции сначала создадим объект QRCode с определенными параметрами:
- version: Версия QR-кода (от 1 до 40, где 1 — самая маленькая, 40 — самая большая).
- error_correction: Уровень коррекции ошибок (ERROR_CORRECTOR_L — низкий уровень коррекции).
- box_size: Размер каждой ячейки QR-кода в пикселях.
- border: Количество ячеек вокруг QR-кода.
import qrcode
def generate_qr_code(data, filename):
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_L,
box_size=10,
border=4,
)
Далее при помощи метода add_data() добавляем данные в QR-код и сгенерируем его:
import qrcode
def generate_qr_code(data, filename):
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_L,
box_size=10,
border=4,
)
qr.add_data(data)
qr.make(fit=True)
Создадим qr-код в виде изображения при помощи метода make_image() и сохраним его:
import qrcode
def generate_qr_code(data, filename):
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_L,
box_size=10,
border=4,
)
qr.add_data(data)
qr.make(fit=True)
img = qr.make_image(fill_color="black", back_color="white")
img.save(filename)
Вызов функции
Осталось вызвать нашу функцию с передачей в неё необходимых данных:
import qrcode
def generate_qr_code(data, filename):
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_L,
box_size=10,
border=4,
)
qr.add_data(data)
qr.make(fit=True)
img = qr.make_image(fill_color="black", back_color="white")
img.save(filename)
if __name__ == "__main__":
data = input("Введите текст или URL для создания QR-кода: ")
filename = input("Введите имя файла для сохранения QR-кода (с расширением .png): ")
generate_qr_code(data, filename)
print(f"QR-код успешно сохранен в файле {filename}")
Определение координат местоположения по адресу
Установка и импорт библиотеки geopy
Перед написанием кода необходимо установить библиотеку geopy, для этого можно перейти в терминал/командную строку, прописать pip install geopy и нажать Enter. После инсталляции импортируем из неё класс Nominatim:
from geopy.geocoders import Nominatim
Пишем функцию для определения координат по заданному адресу
Создадим функцию, которую назовём get_coordinates(), в которой будет присутствовать один параметр, а именно:
- address — адрес, координаты которого необходимо определить
from geopy.geocoders import Nominatim
def get_coordinates(address):
Внутри функции создадим объект класса Nominatim с указанием user_agent и вызовем метод geocode() для поиска координат по адресу, который хранится в переменно address:
from geopy.geocoders import Nominatim
def get_coordinates(address):
geolocator = Nominatim(user_agent="geoapiExercises")
location = geolocator.geocode(address)
Далее будет идти условие, что если location не равен None (т.е. адрес был найден), извлекаем широту (latitude) и долготу (longitude) из объекта location и выводим их:
from geopy.geocoders import Nominatim
def get_coordinates(address):
geolocator = Nominatim(user_agent="geoapiExercises")
location = geolocator.geocode(address)
if location:
latitude = location.latitude
longitude = location.longitude
print(f"Координаты местоположения '{address}':")
print(f"Широта: {latitude}\nДолгота: {longitude}")
else:
print(f"Не удалось найти координаты для адреса '{address}'")
Вызов функции
Осталось вызвать нашу функцию с передачей в неё необходимых данных:
from geopy.geocoders import Nominatim
def get_coordinates(address):
geolocator = Nominatim(user_agent="geoapiExercises")
location = geolocator.geocode(address)
if location:
latitude = location.latitude
longitude = location.longitude
print(f"Координаты местоположения '{address}':")
print(f"Широта: {latitude}\nДолгота: {longitude}")
else:
print(f"Не удалось найти координаты для адреса '{address}'")
if __name__ == "__main__":
address = input("Введите адрес для определения координат: ")
get_coordinates(address)
Удаление фона на изображении
Установка и импорт библиотек rembg и Pillow
Перед написанием кода необходимо установить библиотеки rembg и Pillow. Для этого можно перейти в терминал/командную строку, прописать pip install rembg Pillow и нажать Enter. После инсталляции из rembg импортируем функцию remove, а из Pillow — класс Image:
from rembg import remove
from PIL import Image
Написание кода
Сохраним путь до исходного изображения и путь до итогового изображения в соответствующие переменные:
from rembg import remove
from PIL import Image
input_path = 'image.jpg'
output_path = 'image_output.png'
Далее откроем исходное изображение и удалим фон при помощи функции remove:
from rembg import remove
from PIL import Image
input_path = 'image.jpg'
output_path = 'image_output.png'
open_image = Image.open(input_path)
output = remove(open_image)
Сохраним итоговый результат:
from rembg import remove
from PIL import Image
input_path = 'image.jpg'
output_path = 'image_output.png'
open_image = Image.open(input_path)
output = remove(open_image)
output.save(output_path)
Пример работы кода
Исходное изображение:
Итоговое изображение:
Создание скриншота
Установка и импорт библиотеки Pillow
Перед написанием кода необходимо установить библиотеку Pillow. Для этого можно перейти в терминал/командную строку, прописать pip install Pillow и нажать Enter. После инсталляции импортируем из неё модуль ImageGrab:
from PIL import ImageGrab
Написание кода
На самом деле код довольно прост и для создания скриншота нам нужно обратиться к функции grab из модуля ImageGrab:
from PIL import ImageGrab
screenshot = ImageGrab.grab()
Далее сохраним скриншот при помощи метода save():
from PIL import ImageGrab
screenshot = ImageGrab.grab()
screenshot.save("screenshot.png")
Заключение
В ходе статьи мы с Вами рассмотрели целых 5 простых программ Python. Надеюсь Вам понравилась статья, желаю удачи и успехов! 🙂
Мой Telegram канал
Мой YouTube канал
Курс по Python (50 видоуроков + дополнительные уроки)
Курс по созданию телеграм-ботов на Python с фреймворком Aiogram