Interpretador online:
- Para o primeiro exemplo: https://repl.it/languages/python_turtle
- Para o segundo exemplo e demais códigos: https://repl.it/languages/python3
O objetivo deste exemplo é demonstrar como as variáveis e as funções são interpretadas no Python
Neste exemplo vamos utilizar a biblioteca Turtle para desenhar formas geométricas.
Para importar uma biblioteca em python precisamos utilizar o comando import, normalmente estas importações ocorrem no início do arquivo
import turtleApós isto precisamos criar um objeto Turtle, que será responsável por desenhar as formas geométricas.
t = turtle.Turtle()
Alguns comandos úteis do Turtle:
# Rotacionar o cursor para a direita, passando o ângulo de rotação como parâmetro
t.rt(angulo)
# Rotacionar o cursor para a esquerda, passando o ângulo de rotação como parâmetro
t.lt(angulo)
# Andar para a frente, passando a distância a ser percorrida
t.fd(distancia)
# Levantar a caneta, isto permite que o cursor se mova sem desenhar
t.penup()
# Baixar a caneta, isto faz o cursor voltar a desenhar quando se move
t.pendown()
# Mover o cursor para uma posicao específica em x (pos_x) e em y (pos_y)
t.goto(pos_x, pos_y) Para desenhar um quadrado traçamos uma linha com uma determinada distância, rotacionamos o cursor em 90 graus, e repetimos estes passos mais 3 vezes para completar o quadrado.
Vamos deixar a distância a ser percorrida armazenada em uma variável, para que seja mais fácil de alterar este valor
distancia = 100Agora podemos fazer o procedimento de desenho
# Linha de baixo
t.fd(distancia)
t.lt(90)
# Linha da esquerda
t.fd(distancia)
t.lt(90)
# Linha de cima
t.fd(distancia)
t.lt(90)
# Linha da direita
t.fd(distancia)
t.lt(90)A repetição destes passos pode ser resumida com laços de repetição
Temos dois tipos de laços de repetição o FOR e o WHILE
Utilizando o FOR
for i in range(4):
t.fd(distancia)
t.lt(90)Utilizando o WHILE
# Utilizando for
i = 0
while i<4:
t.fd(distancia)
t.lt(90)
i = i + 1Podemos utilizar as funçoes para "empacotar" estes comandos, evitando a necessidade de repetir o código todas as vezes que quisermos desenhar um quadrado.
def quadrado():
for i in range(4):
t.fd(distancia)
t.lt(90)Para chamar uma função, basta chamar o nome dela
quadrado()É possivel passar argumentos para as funções, tornando o códiugo ainda mais flexivel. Um exemplo de parâmetro que pode ser passado é a distância (que chamaremos de tamanho), permitindo que possamos criar quadrados de tamanhos diferentes.
def quadrado(tamanho):
for i in range(4):
t.fd(tamanho)
t.lt(90)
quadrado(10)
quadrado(20)
quadrado(50)Para desenhar quadrados em posições específicas, devemos passar as coordenadas para a função, e cuidar para levantar a caneta antes de mover o cursor.
def quadrado(tamanho, x, y):
t.penup()
t.goto(x, y)
t.pendown()
for i in range(4):
t.fd(tamanho)
t.lt(90)
quadrado(20, 0, 0)
quadrado(20, 30, 0)
quadrado(20, 30, 30)
quadrado(20, 0, 30)
quadrado(70, -10, -10)Os dados de consumo de energia utilizados neste exemplo foram extraídos de https://dados.fee.tche.br
A linguagem python é bastante utilizada para ánálise de dados, então vamos buscar dados sobre consumo de energia nas cidades do estado do Rio Grande do Sul e vamos comparar o consumo industrial e comercial com o consumo residêncial por município.
A biblioteca pandas é bastante utilizada para trabalhar com dados tabulares, assim como o Excel. Vamos utilizar esta biblioteca para poder manipular os dados com mais facilidade. Além desta biblioteca, utilizaremos a matplotlib, que será responsável por gerar gráficos dos nossos dados.
import pandas as pd
import matplotlib.pyplot as pltOs dados a serem importados estão no formato CSV (Comma Separated Values) e estão disponíveis neste repositório na pasta "energia_rs". É possível realizar o download dos arquivos, ou importar diretamente da internet.
# Salvando o endereço do arquivo na variável URL
url ="https://github.com/armandokeller/conecta_202001/raw/master/energia_rs/energia_residencial.csv"
# Importando para a variável df_residencial
df_residencial = pd.read_csv(url,sep=";",encoding="ISO-8859-1",skiprows=6,index_col="Município")
# Gerando a lista com todos os anos disponíveis (de 1991 até 2018)
anos = list(df_residencial.columns)
# Realizando a transposição dos dados para que os municípios sejam as colunas e os anos as linhas
df_residencial = df_residencial.transpose()
# Criando a lista de cidades
cidades = list(df_residencial.columns)O mesmo procedimento é realizado para o consumo industrial e comercial, agora sem a necessidade de criar a lista de anos disponíveis e de cidades, pois estas já foram criadas.
# Dados industriais
url ="https://github.com/armandokeller/conecta_202001/raw/master/energia_rs/energia_industrial.csv"
df_industrial = pd.read_csv(url,sep=";",encoding="ISO-8859-1",skiprows=6,index_col="Município")
df_industrial = df_industrial.transpose()
# Dados comerciais
url ="https://github.com/armandokeller/conecta_202001/raw/master/energia_rs/energia_comercial.csv"
df_comercial = pd.read_csv(url,sep=";",encoding="ISO-8859-1",skiprows=6,index_col="Município")
df_comercial = df_comercial.transpose()Com estas "planilhas" que agora são chamadas de DataFrames, podemos gerar os gráficos.
Como temos muitas cidades, vamos armazenar em uma variável o nome da cidade que queremos os gráficos. Esta variável servirá para filtrar os dados, e como informação nos gráficos. É importante que a grafia seja a mesma do que a contida no arquivo que foi carregado, neste caso, todas iniciando com letras maiúsculas seguidas de letras minúsculas e considerando a acentuação.
cidade = "São Leopoldo"Para o nosso primeiro gráfico, vamos gerar três linhas, uma para o consumo residencial, outra para o industrial e outra para o comercial.
plt.plot(anos, df_residencial[cidade], label="Residencial")
plt.plot(anos, df_industrial[cidade], label="Industrial")
plt.plot(anos, df_comercial[cidade], label="Comercial")Em seguida, inserimos mais detalhes do gráfico, como nome dos eixos, título, legenda e grade.
# Ativa a exibição da legenda
plt.legend()
# Define o nome do eixo vertical
plt.ylabel("Energia [MWh]")
# Define o nome do eixo horizontal
plt.xlabel("Ano")
# Define o título do gráfico com o nome da cidade
plt.title(f"Consumo de energia em {cidade} - RS")
# Habilita a grade (grid)
plt.grid(True)Até este momento só configuramos o gráfico, nada é exibido. No momento que o gráfico for exibido, a execução do código será interrompida até que a janela com o gráfico seja fechada.
plt.plot()Agora podemos ir para o nosso segundo gráfico, onde realizaremos a comparação do cosumo industrial somado com o consumo comercial em relação ao consumo residencial.
plt.plot(anos, (df_industrial[cidade]+df_comercial[cidade])/df_residencial[cidade])
plt.title("Relação entre consumo comercial e industrial pelo residêncial")
plt.grid(True)
plt.show()A partir daqui podem ser realizadas diversas análises com estes dados.
A linguagem python pode ser aplicada em diversas áreas, principalmente para automatizar tarefas repetitivas.
Links para dados abertos: