1,2K подписчиков

5 простых программ на Python

В данной статье мы напишем 5 простых и полезных программ на языке программирования Python.

Введение

В данной статье мы напишем 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)

Проверка работы кода

В данной статье мы напишем 5 простых и полезных программ на языке программирования Python.-2

Генерация 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)

Пример работы кода

Исходное изображение:

В данной статье мы напишем 5 простых и полезных программ на языке программирования Python.-3

Итоговое изображение:

В данной статье мы напишем 5 простых и полезных программ на языке программирования Python.-4

Создание скриншота

Установка и импорт библиотеки 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

Курс по созданию GUI на Python