Импортированные модули и библиотеки




import pandas as pd

import matplotlib.pyplot as plt

from math import pi

import numpy as np

import sys, os

Приложение 2

Пример использования функции def years():

def years():

for attemp in range(attemps)

try:

global year

year = input(f'Введите год (1998-2018), у вас {attemps - attemp} попыток: ')

if int(year)>=2019 or int(year)<=1997:

print('Данных по такому году нет, попробуйте снова.')

continue

except ValueError: #Если введено не число выводит ошибку

print(f'Некорректные данные!')

 

Приложение 3

Пример использования функции def years():

def mon():

for attemp in range(attemps):

try:

global month

month = input(f'Введите номер месяца, у вас {attemps - attemp} попыток: ')

if int(month) >= 13 or int(month) <= 0:

print('В году всего 12 месяцев, попробуйте снова.')

continue

except ValueError:

print(f'Некорректные данные!')

if attemp == attemps - 1:

print("Выход из программы!")

sys.exit()

else:

break

 

Приложение 4

Пример использования функции def par():

def par():

for attemp in range(attemps):

all_parametr=['Ветер вечером','Ветер днём','Давление вечером','Давление днём','Температура вечером','Температура днём']

global parametr

parametr=input('Введите один из параметров погоды, представленных ниже: \n(Ветер вечером)\n(Ветер днём)\n(Давление вечером)\n(Давление днём)\n(Температура вечером)\n(Температура днём)\n>>> ')

for i in range(6):

if parametr.lower()==all_parametr[i].lower():

parametr=all_parametr[i]

check=True

break

else:

check=False

if check==True:

break

else:

print(f'Некорректные данные!У вас {attemps}')

if attemp == attemps - 1:

print("Выполнено %s неудачных попыток. Выход из программы!"%(attemps))

sys.exit()

Приложение 5

Пример использования функции def find():

def find():

global name

name="piter_%s_%s.csv"%(year, month)

for root, dirs, files in os.walk('C:\\Python37\\'):

if name in files:

global path

path=(os.path.join(root, name))

break

else:

path = ""

if path == "":

print("Данных не найдено")

func()

sys.exit()

 

Приложение 6

Пример использования функции def calc():

def calc():

global pogoda

pogoda="f['%s']"%parametr

global f

f = pd.read_csv(path, encoding='utf8')

if parametr[:5]!="Ветер":

constr()

else:

constr_wind()

 

Приложение 7

Пример использования функции def constr():

def constr():

try:

print('Среднее значение данного параметра в Санкт-Петербурге: ', sum(f(pogoda))/len(f(pogoda)))

except ZeroDivisionError:

print("Пустой файл!")

func()

sys.exit()

f(pogoda).plot()

plt.xlabel('день')

plt.ylabel('%s'%parametr.split()[0].lower)

plt.title('График. %s %s.%s в Ростове'%(parametr, month, year))

Приложение 8

Пример использования функции def constr_wind():

def constr_wind(): #Строит Розу Ветров

side=[]

v=[]

for i in range(len(eval(pogoda))):

eval(pogoda)[i]=eval(pogoda)[i].split()

try:

v.append(eval(pogoda)[i][1])

except IndexError:

v.append('0м/с')

side.append(eval(pogoda)[i][0])

for i in range(len(v)):

v[i]=int(v[i].rstrip('м/с'))

try:

print('Среднее значение данного параметра в Ростове: ', sum(v)/len(v))

except ZeroDivisionError:

print("Пустой файл!")

func()

sys.exit()

listside=['С','СВ','В','ЮВ','Ю','ЮЗ','З','СЗ']

r=[]

n=0

for elem in listside:

for i in range(0, len(side)):

if side[i]==elem:

n+=1

r.append(n/len(side))

n=0

lag = pi/4.

angles = np.arange(0, 2*pi, lag)

fig = plt.figure(figsize=(10,5))

ax = fig.add_subplot(111, projection='polar')

ax.plot(angles, r, color='r', linewidth=1.)

ax.plot((angles[-1],angles[0]),(r[-1],r[0]), color='r', linewidth=1.)

ax.set_theta_direction(-1)

ax.set_theta_offset(pi/2.0)

ax.set_title("Роза ветров. %s %s.%s в Ростове"%(parametr, month, year), loc='center')

plt.tight_layout()

Приложение 9

Пример использования функции def years():

def years():

for attemp in range(attemps):

try:

global year

year = input(f'Введите год (1998-2018), у вас {attemps - attemp} попыток: ')

if int(year)>=2019 or int(year)<=1997:

print('Данных по такому году нет, попробуйте снова.')

years()

except ValueError:

print(f'Некорректные данные!')

if attemp == attemps - 1:

print("Выход из программы!")

sys.exit()

else:

break

 

def mon():

for attemp in range(attemps):

try:

global month

month = input(f'Введите номер месяца, у вас {attemps - attemp} попыток: ')

if int(month) >= 13 or int(month) <= 0:

print('В году всего 12 месяцев, попробуйте снова.')

mon()

except ValueError:

print(f'Некорректные данные!')

if attemp == attemps - 1:

print("Выход из программы!")

sys.exit()

else:

break

 

Приложение 10

Пример использования функции def total():

def total():

if inf1<inf2:

print('В вашем городе %s в указанный период меньше'%parametr)

elif inf1>inf2:

print('В вашем городе %s в указанный период больше'%parametr)

else:

print('в городах %s в указанный период одинаково'%parametr)

 

Приложение 11

Пример использования функции def city_1():

Приложение 12

Пример использования функции def city_1():

def city_1():

global gorod1

for attemp in range(attemps):

gorod1=input('Ваш город: ')

for i in range(8):

if gorod1.lower()==vse_goroda[i].lower():

gorod1=vse_goroda[i]

check=True

break

else:

check=False

if check==True:

gorod1=[vse_goroda_lat[i] for i in range(8) if gorod1==vse_goroda[i]]

gorod1="".join(str(gorod1[0]))

break

else:

print('Некорректные данные!')

if attemp == attemps - 1:

print("Выполнено %s неудачных попыток. Выход из программы!"%(attemps))

sys.exit()

Приложение 13

Пример использования функции def calc():

def calc():

global pogoda1, pogoda2, f1,f2

pogoda1="f1['%s']"%parametr

pogoda2="f2['%s']"%parametr

f1 = pd.read_csv(path1, encoding='utf8')

f2 = pd.read_csv(path2, encoding='utf8')

if parametr[:5]!='Ветер':

constr()

else:

constr_wind()

Приложение 14

Пример работы функции def constr():

def constr():

global inf1, inf2

try:

print('Среднее значение данного параметра в вашем городе: ', sum(eval(pogoda1))/len(eval(pogoda1)))

except ZeroDivisionError:

print("%s Пустой файл! "%name1)

func()

sys.exit()

inf1=sum(eval(pogoda1))/len(eval(pogoda1))

try:

print('Среднее значение данного параметра в другом городе: ', sum(eval(pogoda2))/len(eval(pogoda2)))

except ZeroDivisionError:

print("%s Пустой файл!"%name2)

func()

sys.exit()

inf2=sum(eval(pogoda2))/len(eval(pogoda2))

Приложение 15

Пример использования функции def constr_wind():

def constr_wind():

global inf1, inf2

v1=[]

for i in range(len(eval(pogoda1))):

eval(pogoda1)[i]=eval(pogoda1)[i].split()

try:

v1.append(eval(pogoda1)[i][1])

except IndexError:

v1.append('0м/с')

for i in range(len(v1)):

v1[i]=int(v1[i].rstrip('м/с'))

 

try:

print('Среднее значение данного параметра в вашем городе: ', sum(v1)/len(v1))

except ZeroDivisionError:

print("%s Пустой файл!"%name1)

func()

sys.exit()

inf1=sum(v1)/len(v1)

v2=[]

for i in range(len(eval(pogoda2))):

eval(pogoda2)[i]=eval(pogoda2)[i].split()

try:

v2.append(eval(pogoda2)[i][1])

except IndexError:

v2.append('0м/с')

for i in range(len(v2)):

v2[i]=int(v2[i].rstrip('м/с'))

 

try:

print('Среднее значение данного параметра в другом городе: ', sum(v2)/len(v2))

except ZeroDivisionError:

print("%s Пустой файл!"%name2)

func()

sys.exit()

inf2=sum(v2)/len(v2)

Приложение 16

Пример использования функции def total():

def total():

if inf1<inf2:

print('В вашем городе %s в указанный период меньше'%parametr)

elif inf1>inf2:

print('В вашем городе %s в указанный период больше'%parametr)

else:

print('в городах %s в указанный период одинаково'%parametr)

 

Приложение 17

Скрипт Задания №1

#Подключаем библиотеки

import pandas as pd

import matplotlib.pyplot as plt

from math import pi

import numpy as np

import sys, os

import warnings

warnings.filterwarnings("ignore")# скрываем предупреждения

 

print('"ВЕТЕР ДНЁМ В КРАСНОДАРЕ"')

 

attemps = 5# количество попыток

 

#Проверка ввода для года

def years():

for attemp in range(attemps):

# проверка на принадлежность временному диапазону

try:

global year

year = input(f'Введите год (1998-2018), у вас {attemps - attemp} попыток: ')

if int(year)>=2019 or int(year)<=1997:

print('Данных по такому году нет, попробуйте снова.')

if attemp == attemps - 1:

print("Выход из программы!")

sys.exit()

continue

# проверка на числовое значение

except ValueError:

print(f'Некорректные данные!')

if attemp == attemps - 1:

print("Выход из программы!")

sys.exit()

else:

break

 

#Проверка ввода для месяца

def mon():

for attemp in range(attemps):

# проверка на правильность ввода номера месяца

try:

global month

month = input(f'Введите номер месяца, у вас {attemps - attemp} попыток: ')

if int(month) >= 13 or int(month) <= 0:

print('В году всего 12 месяцев, попробуйте снова.')

if attemp == attemps - 1:

print("Выход из программы!")

sys.exit()

continue

# проверка на числовое значение

except ValueError:

print(f'Некорректные данные!')

if attemp == attemps - 1:

print("Выход из программы!")

sys.exit()

else:

break

 

#Поиск файла и пути к нему

def find():

global name

name="krasnodar_%s_%s.csv"%(year, month)# генерация имени файла для заданных года и месяца

# поиск файла

for root, dirs, files in os.walk('C:\\'):

if name in files:

global path

path=(os.path.join(root, name))

break

else:

path=""

# проверка на существование файла с таким именем

if path=="":

print("Данных не найдено. Попробуте снова...")

func()

sys.exit()

 

#Вычисление средней скорости

def calc():

global parametr, v, side

parametr='Ветер вечером'

pogoda="f['%s']"%parametr

f = pd.read_csv(path, encoding='utf8')

# составление списков направлений и скорости ветра

side=[]

v=[]

for i in range(len(eval(pogoda))):

eval(pogoda)[i]=eval(pogoda)[i].split()

try:

v.append(eval(pogoda)[i][1])

except IndexError:

v.append('0м/с')

side.append(eval(pogoda)[i][0])

for i in range(len(v)):

v[i]=int(v[i].rstrip('м/с'))

# проверка на пустой файл

try:

print('Среднее значение данного параметра в Краснодаре: ', sum(v)/len(v))

except ZeroDivisionError:

print("Пустой файл!")

func()

sys.exit()

 

#Построение розы ветров

def constr():

# вычисление повторяемости направлений ветра

listside=['С','СВ','В','ЮВ','Ю','ЮЗ','З','СЗ']# список всех возможных направлений

r=[]

n=0

# создание списка частоты повторяемости направлений

for elem in listside:

for i in range(0, len(side)):

if side[i]==elem:

n+=1

r.append(n/len(side))

n=0

 

angles = np.arange(0, 2*pi, pi/4.)# задаем шкалу делений

fig = plt.figure(figsize=(10,5))# задаем размер полотна

ax = fig.add_subplot(111, projection='polar')# задаем график в полярных координатах

ax.plot(angles, r, color='r', linewidth=1.)# построение розы ветров

ax.plot((angles[-1],angles[0]),(r[-1],r[0]), color='r', linewidth=1.)# замыкаем розу ветров

ax.set_theta_direction(-1)# изменяем направление обхода на "по часовой"

ax.set_theta_offset(pi/2.0)# смещаем нулевую ось на 90 градусов против часовой стрелки, в положение "север"

ax.set_title("Роза ветров\n %s за %s.%s в Краснодаре"%(parametr, month, year), loc='center', color='b')# заголовок

ax.set_xlabel(u'Среднее значение: %.2f м/с'%(sum(v)/len(v)), fontsize=8, color='g')# вывод среднего значения скорости ветра

# настраиваем вспомогательную сетку

ax.grid(True, axis='y', color='gray', linestyle='--')

ax.grid(True, axis='x', color='gray', linestyle='--')

plt.tight_layout()# вывод графика

#Вызов всех функций

def func():

years()

mon()

find()

calc()

constr()

plt.show()

func()

 

 

Приложение 18

Скрипт Задания №2

#Подключаем библиотеки

import sys, os

import pandas as pd

import warnings

warnings.filterwarnings("ignore")# скрываем предупреждения

 

attemps=5# количество попыток

 

#Проверка ввода для года

def years():

for attemp in range(attemps):

# проверка на принадлежность временному диапазону

try:

global year

year = input(f'Введите год (1998-2018), у вас {attemps - attemp} попыток: ')

if int(year)>=2019 or int(year)<=1997:

print('Данных по такому году нет, попробуйте снова.')

if attemp == attemps - 1:

print("Выход из программы!")

sys.exit()

continue

# проверка на числовое значение

except ValueError:

print(f'Некорректные данные!')

if attemp == attemps - 1:

print("Выход из программы!")

sys.exit()

else:

break

 

#Проверка ввода для месяца

def mon():

for attemp in range(attemps):

# проверка на правильность ввода номера месяца

try:

global month

month = input(f'Введите номер месяца, у вас {attemps - attemp} попыток: ')

if int(month) >= 13 or int(month) <= 0:

print('В году всего 12 месяцев, попробуйте снова.')

if attemp == attemps - 1:

print("Выход из программы!")

sys.exit()

continue

# проверка на числовое значение

except ValueError:

print(f'Некорректные данные!')

if attemp == attemps - 1:

print("Выход из программы!")

sys.exit()

else:

break

 

#Списки городов на латинском алфавите и кириллице соответственно

vse_goroda_lat=['kazan', 'krasnodar', 'moskva', 'piter', 'rostov', 'ufa', 'volgograd', 'voroneg']

vse_goroda=['Казань',"Краснодар","Москва","Питер","Ростов","Уфа","Волгоград","Воронеж"]

 

#Проверка ввода названия вашего города

def city_1():

global gorod1

for attemp in range(attemps):

gorod1=input('Ваш город: ')

# проверка на принадлежность списку

for i in range(8):

if gorod1.lower()==vse_goroda[i].lower():

gorod1=vse_goroda[i]

check=True

break

else:

check=False

# преобразование названия города для латинского алфавита

if check==True:

gorod1=[vse_goroda_lat[i] for i in range(8) if gorod1==vse_goroda[i]]

gorod1="".join(str(gorod1[0]))

break

else:

print('Некорректные данные!')

if attemp == attemps - 1:

print("Выполнено %s неудачных попыток. Выход из программы!"%(attemps))

sys.exit()

 

#Создание имени файла и пути к нему для первого города

def find_1():

global name1, path1

name1="%s_%s_%s.csv"%(gorod1, year, month)# генерация имени файла для заданных города, года и месяца

# поиск файла

for root, dirs, files in os.walk('E:\\'):

if name1 in files:

path1=(os.path.join(root, name1))

break

else:

path1=""

# проверка на существование файла с таким именем

if path1=="":

print("Данных для %s не найдено. Попробуйте снова..."%name1)

func()

sys.exit()

 

#Проверка ввода названия города для сравнения

def city_2():

global gorod2

for attemp in range(attemps):

gorod2=input('Город для сравнения: ')

# проверка на принадлежность списку

for i in range(8):

if gorod2.lower()==vse_goroda[i].lower():

gorod2=vse_goroda[i]

check=True

break

else:

check=False

# преобразование названия города для латинского алфавита

if check==True:

gorod2=[vse_goroda_lat[i] for i in range(8) if gorod2==vse_goroda[i]]

gorod2="".join(str(gorod2[0]))

break

else:

print('Некорректные данные!')

if attemp == attemps - 1:

print("Выполнено %s неудачных попыток. Выход из программы!"%(attemps))

sys.exit()

 

#Создание имени файла и пути к нему для второго города

def find_2():

global name2, path2

name2="%s_%s_%s.csv"%(gorod2, year, month)

# поиск файла

for root, dirs, files in os.walk('E:\\'):

if name2 in files:

path2=(os.path.join(root, name2))

break

else:

path2=""

# проверка на существование файла с таким именем

if path2=="":

print("Данных для %s не найдено. Попробуйте снова..."%name2)

func()

sys.exit()

 

#Список всех параметров

all_parametr=['Ветер вечером','Ветер днём','Давление вечером','Давление днём','Температура вечером','Температура днём']

 

#Проверка ввода параметра

def par():

for attemp in range(attemps):

global parametr

parametr=input('Введите один из параметров погоды (см. список выше): ')

# проверка на принадлежность списку

for i in range(6):

if parametr.lower()==all_parametr[i].lower():

parametr=all_parametr[i]

check=True

break

else:

check=False

if check==True:

break

else:

print('Некорректные данные!')

if attemp == attemps - 1:

print("Выполнено %s неудачных попыток. Выход из программы!"%(attemps))

sys.exit()

 

#Вызов нужной функции в зависимости от параметра

def option():

global pogoda1, pogoda2, f1,f2

pogoda1="f1['%s']"%parametr

pogoda2="f2['%s']"%parametr

f1 = pd.read_csv(path1, encoding='utf8')

f2 = pd.read_csv(path2, encoding='utf8')

if parametr[:5]!='Ветер':

calc()

else:

calc_wind()

 

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

def calc():

global inf1, inf2# переменные со средним значением

# проверка на пустой файл

try:

print('Среднее значение данного параметра в вашем городе: ', sum(eval(pogoda1))/len(eval(pogoda1)))

except ZeroDivisionError:

print("%s Пустой файл! "%name1)

func()

sys.exit()

inf1=sum(eval(pogoda1))/len(eval(pogoda1))

# проверка на пустой файл

try:

print('Среднее значение данного параметра в другом городе: ', sum(eval(pogoda2))/len(eval(pogoda2)))

except ZeroDivisionError:

print("%s Пустой файл!"%name2)

func()

sys.exit()

inf2=sum(eval(pogoda2))/len(eval(pogoda2))

 

#Вычисление среднего значения скорости ветра для каждого города

def calc_wind():

global inf1, inf2# переменные со средним значением

v1=[]

for i in range(len(eval(pogoda1))):

eval(pogoda1)[i]=eval(pogoda1)[i].split()# разделение строки списка на направление и скорость

try:

v1.append(eval(pogoda1)[i][1])# создание списка скорости ветра для каждого дня месяца

except IndexError:

v1.append('0м/с')# если встречается значение "Ш" - штиль

for i in range(len(v1)):

v1[i]=int(v1[i].rstrip('м/с'))# оставляем только числовые значения

# проверка на пустой файл

try:

print('Среднее значение данного параметра в вашем городе: ', sum(v1)/len(v1))

except ZeroDivisionError:

print("%s Пустой файл!"%name1)

func()

sys.exit()

inf1=sum(v1)/len(v1)

v2=[]

for i in range(len(eval(pogoda2))):

eval(pogoda2)[i]=eval(pogoda2)[i].split()# разделение строки списка на направление и скорость

try:

v2.append(eval(pogoda2)[i][1])# создание списка скорости ветра для каждого дня месяца

except IndexError:

v2.append('0м/с')# если встречается значение "Ш" - штиль

for i in range(len(v2)):

v2[i]=int(v2[i].rstrip('м/с'))# оставляем только числовые значения

# проверка на пустой файл

try:

print('Среднее значение данного параметра в другом городе: ', sum(v2)/len(v2))

except ZeroDivisionError:

print("%s Пустой файл!"%name2)

func()

sys.exit()

inf2=sum(v2)/len(v2)

 

#Сравнение значений и вывод результата

def total():

if inf1<inf2:

print('В вашем городе %s в указанный период меньше'%parametr)

elif inf1>inf2:

print('В вашем городе %s в указанный период больше'%parametr)

else:

print('в городах %s в указанный период одинаково'%parametr)

 

#Вызов всех функций

def func():

years()

mon()

print("Данные есть для таких городов, как:")# подсказка для ввода городов

for i in range(8):

print('-', vse_goroda[i])

city_1()

find_1()

city_2()

find_2()

print('Параметры погоды:')# подсказка для ввода параметра погоды

for i in range(6):

print('-', all_parametr[i])

par()

option()

total()

func()



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-08-19 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: