Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import sqlite3
- import pandas as pd
- conn = sqlite3.connect("hod.db")
- cursor = conn.cursor()
- res = pd.read_excel('resursy_RP_1_2.xlsx')
- what_adds = {
- 'produced_Coal': 'coal',
- 'produced_Oil': 'oil',
- 'produced_Gas': 'gas',
- 'produced_Uranium': 'uranium',
- 'produced_Aluminum': 'aluminum',
- 'produced_Steel': 'steel',
- 'produced_PreciousMetals': 'preciousMetals',
- 'produced_PreciousStones': 'preciousStones',
- 'produced_Non_ferrousMetals': 'non_ferrousMetals',
- 'produced_Forest': 'forest',
- 'profit': 'money'
- }
- try:
- print('Ищу нужную таблицу таблицы')
- cursor.execute("""CREATE TABLE all_country (country text,
- produced_Coal integer,
- produced_Oil integer,
- produced_Gas integer,
- produced_Uranium integer,
- produced_Aluminum integer,
- produced_Steel integer,
- produced_PreciousMetals integer,
- produced_PreciousStones integer,
- produced_Non_ferrousMetals integer,
- produced_Forest integer,
- coal integer DEFAULT 0,
- oil integer DEFAULT 0,
- gas integer DEFAULT 0,
- uranium integer DEFAULT 0,
- aluminum integer DEFAULT 0,
- steel integer DEFAULT 0,
- preciousMetals integer DEFAULT 0,
- preciousStones integer DEFAULT 0,
- non_ferrousMetals integer DEFAULT 0,
- forest integer DEFAULT 0,
- money integer DEFAULT 0,
- stability integer DEFAULT 0,
- population integer DEFAULT 0,
- tax integer DEFAULT 0,
- profit integer DEFAULT 0)""")
- print('Новая таблица успешно созданна')
- except sqlite3.OperationalError:
- print('Таблица успешно обнаружена')
- # TODO добавить остальные постройки
- def filling_database():
- print('Начинаю заполнение базы данных')
- for _, line in res.iterrows():
- cursor.execute(f"""INSERT INTO all_country ("country","produced_Coal","produced_Oil","produced_Gas",
- "produced_Uranium","produced_Aluminum","produced_Steel","produced_PreciousMetals",
- "produced_PreciousStones","produced_Non_ferrousMetals","produced_Forest")
- VALUES ("{line['Страны']}", {line['Уголь']}, {line['Нефть']}, {line['Газ']}, {line['Уран']},
- {line['Алюм.']}, {line['Сталь']}, {line['Цен.М']}, {line['Цен.К']}, {line['Цвет.М']}, {line['Лес']})""")
- conn.commit()
- print('База данных успешно заполнена')
- def plus_minus_at_database(country, parameter, value):
- print(f'Устанавливаю стране {country}, параметр {parameter} больше на {str(value)}')
- sql = f"SELECT {parameter} FROM all_country WHERE country='{country}'"
- cursor.execute(sql)
- country_fetchone = cursor.fetchone()
- sql = f"UPDATE all_country SET {parameter}={country_fetchone[0]+value} WHERE country='{country}'"
- cursor.execute(sql)
- conn.commit()
- print('Значение успешно изменено')
- def new_value(country, parameter, value):
- print(f'Устанавливаю стране {country}, параметр {parameter} равным {str(value)}')
- sql = f"UPDATE all_country SET {parameter}={value} WHERE country='{country}'"
- cursor.execute(sql)
- conn.commit()
- print('Значение успешно изменено')
- def profit_calculation_all():
- print('Начинаю расчёт прибыли для всех стран')
- for _, line in res.iterrows():
- print(f'Расчитываю прибыль для страны {line["Страны"]}')
- sql = f"""SELECT "produced_Coal","produced_Oil","produced_Gas",
- "produced_Uranium","produced_Aluminum","produced_Steel","produced_PreciousMetals",
- "produced_PreciousStones","produced_Non_ferrousMetals","produced_Forest" FROM all_country
- WHERE country='{line['Страны']}'"""
- cursor.execute(sql)
- loss = sum(cursor.fetchone()) * 10_000
- sql=f"""SELECT "tax","population" FROM all_country WHERE country='{line['Страны']}'"""
- cursor.execute(sql)
- country_fetchone = cursor.fetchone()
- profit_tax = country_fetchone[0] * country_fetchone[1]
- sql = f"UPDATE all_country SET profit = {profit_tax - loss} WHERE country='{line['Страны']}'"
- cursor.execute(sql)
- conn.commit()
- print('Расчёт успешно окончен')
- def profit_calculation_one(country):
- print(f'Начинаю расчёт прибыли для страны {country}')
- sql = f"""SELECT "produced_Coal","produced_Oil","produced_Gas",
- "produced_Uranium","produced_Aluminum","produced_Steel","produced_PreciousMetals",
- "produced_PreciousStones","produced_Non_ferrousMetals","produced_Forest" FROM all_country
- WHERE country='{country}'"""
- cursor.execute(sql)
- loss = sum(cursor.fetchone()) * 10_000
- sql=f"SELECT tax, population FROM all_country WHERE country='{country}'"
- cursor.execute(sql)
- country_fetchone = cursor.fetchone()
- profit_tax = country_fetchone[0] * country_fetchone[1]
- sql = f"UPDATE all_country SET profit = {profit_tax - loss} WHERE country='{country}'"
- cursor.execute(sql)
- conn.commit()
- print('Расчёт успешно окончен')
- def new_hod():
- print('Начинаю расчёт на новый ход')
- for _, line in res.iterrows():
- print(f'Начинаю расчитывать для страны {line["Страны"]}')
- for key, value in what_adds.items():
- sql = f"SELECT {key}, {value} FROM all_country WHERE country='{line['Страны']}'"
- cursor.execute(sql)
- country_fetchone = cursor.fetchone()
- sql = f"UPDATE all_country SET {value}={country_fetchone[0]+country_fetchone[1]} WHERE country='{line['Страны']}'"
- cursor.execute(sql)
- conn.commit()
- print('Расчёт закончен для всех стран')
- def one_report(country):
- sql = f"SELECT * FROM all_country WHERE country='{country}'"
- cursor.execute(sql)
- country_fetchone = cursor.fetchone()
- report = f"Стран - {country_fetchone[0]}\n\n"\
- f"Углеперерабатывающее предприятия - {country_fetchone[1]}\n"\
- f"Нефтеперерабатывающие предприятия - {country_fetchone[2]}\n"\
- f"Газоперерабатывающие предприятия - {country_fetchone[3]}\n"\
- f"Ураноперерабатывающие предприятия - {country_fetchone[4]}\n"\
- f"Алюминиеперерабатывающие предприятия - {country_fetchone[5]}\n"\
- f"Сталеперерабатывающие предприятия - {country_fetchone[6]}\n"\
- f"Цен.металлоперерабатывающие предприятия - {country_fetchone[7]}\n"\
- f"Цен. камнеперерабатывающие предприятия - {country_fetchone[8]}\n"\
- f"Цвет. металлоперерабатывающие предприятия - {country_fetchone[9]}\n"\
- f"Древообрабатывающие предприятия - {country_fetchone[10]}\n\n"\
- f"1. Бюджет {country_fetchone[21]}$\n"\
- f"2. Уголь {country_fetchone[11]}\n"\
- f"Нефть {country_fetchone[12]}\n"\
- f"Газ {country_fetchone[13]}\n"\
- f"Уран {country_fetchone[14]}\n"\
- f"Алюминий {country_fetchone[15]}\n"\
- f"Сталь {country_fetchone[16]}\n"\
- f"Цен. М {country_fetchone[17]}\n"\
- f"Цен. К {country_fetchone[18]}\n"\
- f"Цвет. М {country_fetchone[19]}\n"\
- f"Лес {country_fetchone[20]}\n"\
- f"3. Население {country_fetchone[22]} человек(а)\n"\
- f"4. Стабильность {country_fetchone[23]}\n"\
- f"Налог - {country_fetchone[24]}$\n\n"\
- f"Прибыль в ход {country_fetchone[25]}$\n"
- return report
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement