Создание программы, отслеживающей погоду во всем мире, на языке программирования Python

XVII Международный конкурс научно-исследовательских и творческих работ учащихся
Старт в науке

Создание программы, отслеживающей погоду во всем мире, на языке программирования Python

Вязьмин В.А. 1
1МБОУ города Иркутска СОШ 24
Ванцай М.В. 1
1МБОУ г Иркутска СОШ 24
Автор работы награжден дипломом победителя II степени
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

Введение

На уроках информатики по программированию я изучаю язык PASCAL. Но так ли это актуально сейчас? Наука и технологии сегодня развиваются столь стремительно, что возникает необходимость серьёзно заниматься программированием, начиная со школы. Хоть этот язык и перестал развиваться - многие считают, что язык по-прежнему выполняет функцию обучения языку программирования.

Актуальность данной темы обусловлена тем, что прогресс компьютерных технологий привел к появлению систем для записи алгоритмов – языков программирования.

Паскаль - язык, созданный специально для того, чтобы научить программированию. Он прост и строг, соответствует решению такой задачи, как развитие алгоритмического мышления, формирование алгоритмической культуры. Очень многие специалисты считают, что после изучения Паскаля легче освоить любой другой язык программирования.

Python - язык модный, живой и перспективный, обеспечивающий легкий старт, он не обладает строгостью Паскаля и является самым быстрорастущим языком программирования за последние несколько лет. Об этом говорит исследование StackOverflow за 2019 год.

Я решил самостоятельно, не без своего учителя, конечно, освоить язык программирования Python. Результатом моей работы хочу показать исследование программы на применение ее для общего пользования.

Цель: разработка программы, отслеживающей погоду во всём мире, на языке программирования Python.

Задачи:

Изучить язык программирования Python

Изучить взаимодействие сайта https://openweathermap.org c языком программирования Python

Разработать программу, отслеживающую погоду во всём мире, на языке программирования Python.

Основная часть

Теоретическая часть

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

В связи с этим, определенный интерес представляет рассмотрение сравнительно нового языка программирования Python (пайтон), который был создан его автором Гвидо ван Россумом в начале 90-х годов.

Общие сведения о Python. Достоинства и недостатки

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

Достоинства языка

Несомненным достоинством является то, что интерпретатор Python реализован практически на всех платформах и операционных системах. Первым таким языком был C, однако его типы на разных машинах могли занимать разное количество памяти и это служило некоторым препятствием при написании программы. Python же таким недостатком не обладает.

Следующая черта - расширяемость языка, этому придается большое значение, язык был задуман именно как расширяемый. Это означает, что имеется возможность совершенствования языка всеми желающими.

Следующее достоинство - наличие большого числа подключаемых к программе модулей, обеспечивающих различные дополнительные возможности. Такие модули пишутся на С и на самом Python и могут быть разработаны всеми достаточно квалифицированными программистами. В качестве примера можно привести следующие модули:

Numerical Python - расширенные математические возможности, такие как манипуляции с целыми векторами и матрицами;

Tkinter - построение приложений с использованием графического пользовательского интерфейса (GUI) на основе широко распространенного на X-Windows Tk-интерфейса;

OpenGL - использование обширной библиотеки графического моделирования двух- и трехмерных объектов Open Graphics Library фирмы Silicon Graphics Inc. Данный стандарт поддерживается, в том числе, в таких распространенных операционных системах как Microsoft Windows 95 OSR 2, 98 и Windows NT 4.0.

Недостатки языка

Единственным недостатком, замеченным автором, является сравнительно невысокая скорость выполнения Python - программы, что обусловлено ее интерпретируемостью. Однако это окупается достоинствами языка при написании программ не очень чувствительных к скорости выполнения.

2.2 Практическая часть

Изучение языка Python.

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

Импортирование модуля, переменная, оператор присваивания, типы данных, ввод информации с клавиатуры, вывод информации на экран, операторы сравнения, операторы условий, алгебра логики.

Импорт модуля:

В Python существует огромное количество подключаемых модулей. Модули создаются пользователями и помещаются в общую копилку модулей для того, чтобы любой программист мог им воспользоваться. Для того, чтобы модуль подключить к скрипту, используется встроенная инструкция import <название модуля>.

Например:

importmath – эта команда импортирует встроенный модуль math для работы с математическими операциями.

Переменная:

Переменная – выделяемая компьютером область памяти для хранения данных.

Для того, чтобы поместить в переменную какое-то значение, нам необходим оператор присваивания (=).

<переменная> = <значение>

Например:

a = 3 – с помощью оператора присваивания, мы поместили в переменную а значение 3.

Типы данных:

В Python нам пригодятся следующие типы данных:

str – строка (текст). Текст в Python записывается в кавычках.

b = «Привет, Мир!» - с помощью оператора присваивания, мы поместили в переменную b текстовое значение «Привет, Мир!!!»

int (integer) – целое число.

float – дробное число.

Для наглядности воспользуемся функцией type(<переменная>), которая определяет тип данных переменной.

Например (Рис1):

Рис1. Пример объявления различных типов данных

Ввод/вывод информации:

Для ввода информации с клавиатуры, используется встроенная функция input(). Круглые скобки в конце функции предназначены для вызова функции. Так же в круглые скобки можно поместить сообщение пользователю.

Например:

Input(«Введите имя: ») – эта команда попросит пользователя ввести своё имя.

Для вывода информации на экран, в Python реализована всторенная функция print(<выводимое значение>)

Например (Рис2):

Рис2. Вывод информации на экран.

Чтобы сохранить введённые данные, их можно поместить в переменную (Рис. 3,4).

Рис3. Пример работы функции input

Рис. 4. Результат выполнения команды.

Операторы сравнения:

Для того, чтобы выдавать на экран пользователя комментарии, относительно температуры воздуха, нам необходимо сравнить текущую погоду с необходимыми значениями, для этого, нам потребуются операторы сравнения:

> - оператор сравнивает первое число больше второго?

< - оператор сравнивает первое число меньше второго?

>= - оператор сравнивает первое число больше либо равно второму?

<= - оператор сравнивает первое число меньше либо равно второму?

== - оператор сравнивает равны ли числа

!= (< >) - оператор сравнивает не равны ли числа

Операторы условий:

Для проверки условий в языке программирования Python предусмотрен оператор if (если) <условие>: <действие>. Если при проверке условия, оно будет выполнено, то выполнится действие.

Например (Рис. 5,6):

Рис5. Пример работы условного оператора «if» и оператора сравнения «==».

Рис6. Результат выполнения команды.

Если необходимо выполнить проверку нескольких условий, то можно воспользоваться оператором elif (или если), который позволяет продолжить проверку условия, после невыполнения проверки 1-ого условия.

if<условие 1>: <действие 1>

elif<условие 2>: <действие 2>

Например (Рис. 7,8):

Рис. 7. Пример работы условного оператора elif.

Рис8. Результат выполнения команды.

Если не выполняется ни одно из условий, то можно воспользоваться оператором else (иначе).

if<условие 1>: <действие 1>

elif<условие 2>: <действие 2>

else: <действие 3>

Например (Рис. 9,10):

Рис. 9. Пример работы условного оператора else.

Рис10. Результат выполнения команды.

Алгебра логики:

Если необходимо проверить выполнение нескольких условий одновременно, может потребоваться использовать алгебру логики. Для работы данной программы потребуется 2 логических оператора:

and – проверяет одновременное выполнение сразу обоих условий.

or – проверяет выполнение хотя бы одного условия.

not – меняет значение переменной на противоположное.

Например (Рис. 11,12):

Рис. 11. Применение логических операторов.

Рис. 12. Результат выполнения команд

Взаимодействие сайта https://openweathermap.orgc языком программирования Python.

Скрипт, написанный мной, получает информацию с сайта https://openweathermap.org (рис.13).

Рис.13. Главная страница сайта https://openweathermap.org

Для получения доступа к погоде, необходимо зарегистрироваться на сайте, заполнив данные регистрации (Рис. 14).

Рис. 14. Создание личного аккаунта.

После прохождения регистрации в личном кабинете можно получить бесплатный ключ API, который активирует скрипт (Рис.15).

Рис. 15. API ключ в личном кабинете.

Для работы с модулем, необходимо его установить. Скачать и установить модуль можно с помощью утилиты pip, для этого в командной строке вводим команду «pip install pyowm» (Рис.16):

Рис.16. Скачивание и установка модуля pyowm.

Список команд для скачивания любого модуля есть на сайте http://pypl.org

Разработка программы, отслеживающей погоду во всём мире, на языке программирования Python.

Импортмодуля:

from pyowm.owm import OWM

Импорт страндартных настрек для изменения языка:

from pyowm.utils.config import get_default_config

Создаём переменную, в которую помещаем список стандартных настроек:

config_dict = get_default_config()

Инициализация (активация) проходит с использованием ключа, полученного после регистрации на сайте openweathetmap.org. Ключ позволяет сайту увидеть уровень доступа:

owm = OWM('e7ee9d0804233b696d474021e93e2f41', config_dict)

В переменную city помещаем город, в котором пользователь хочет узнать погоду:

city = input("Введите название города, в котором вы хотите узнать текущую погоду: ")

Для получения состояния погоды вызываем менеджер погоды:

mgr = owm.weather_manager()

В менеджере погоды выбираем метод получения погоды в выбранном городе. В круглых скобках указывается город (переменная city):

obs = mgr.weather_at_place(city)

Вызываем метод, в котором хранится вся информация о погоде:

weather = obs.weather

Информация о состоянии погоды на текущий момент:

ds = weather.detailed_status

Информация о температуре воздуха на текущий момент:

temp = weather.temperature('celsius')['temp']

Вывод погоды на экран:

Необходимо написать обычный текст в скобках и добавить числовые переменные, переводя их в строки с помощью метода str, чтобы получить готовый и понятный отчёт.

print("В городе " + city + " " +str(temp) + " градуса(ов) цельсия.")

print("На небе " + ds)

Вывод на экран советов, в зависимости от температуры воздуха:

if temp >= 25:

print ("На улице очень жарко, берегите голову от солнечного удара")

elif temp <=-15 and temp >-25:

print ("На улице холодно одевайтесь потеплее")

elif temp <=0 and temp >-15:

print ("На улице прохладно наденьте кофту")

elif temp >=0 and temp <15:

print ("На улице тепло")

elif temp >=15 and temp <25:

print ("На улице очень тепло")

elif temp <= -25:

print ("На улице очень холодно. Дубак!")

Пишем команду input, чтобы консоль не закрылась сразу же после

выполнения команды, а ожидала ввода команды с клавиатуры:

input()

Ниже приведено изображение готового кода (Рис.17) и результат выполнения программы (Рис.18)

Рис. 17. Готовый код программы

Рис. 18. Результат выполнения программы.

Вывод:

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

Изучив взаимодействие сайта http://openweathermap.org с языком программирования python мне потребовалось узнать, где генерируется API ключ, для чего он нужен и как активировать модуль. Сайт не поддерживает русский язык, что затруднило поиск, но переводчик, встроенный в браузер, помог с этим справиться. А также мне потребовалось установить pyowm модуль прежде, чем я смог импортировать его в проект.

Разрабатывая программу, я получил много знаний о языке python, особенностях его работы и о модуле pyowm. В результате работы у меня получилось написать программу, которая может вывести информацию о погоде из любой точки планеты.

Литература

Бадд Т. Объектно-ориентированное программирование.- СПб.: Питер, 1997.

Guido van Rossum. Python Tutorial. ()

Chris Hoffman. A Python Quick Reference. ()

Guido van Rossum. Python Library Reference. ()

Guido van Rossum. Python Reference Manual. ()

Гвидо ван Россум. Семинар по программированию на Python.https://pythonworld.ru/ [Электронный ресурс] - Python 3 для начинающих.

Просмотров работы: 349