import urllib.request | |
import requests | |
import json | |
# Acima módulos uteis para conectar a internet e acessar páginas e APIs | |
# E manipular dados em formato json | |
# Neste exemplo acessamos a API do IBGE | |
# Para não fazer acessos repetidos a plataforma | |
# recomenda-se salvar os dados obtidos na primeira chamada em aruivo de texto e | |
# fazer testes. | |
# Link: https://servicodados.ibge.gov.br/api/docs | |
# Link: https://sidra.ibge.gov.br/home/abate/brasil | |
def main(campo=''): | |
#dt = urllib.request.urlopen(url).read() # Acessando a API | |
dt = requests.get(url+'?qtd=3') | |
print(dt) | |
data = json.loads(dt.text) #Decodificando e extraindo json. | |
for i in data['items']: | |
print('> {}\n{}\n{}\n{}\n\n'.format(i['titulo'], i['introducao'], i['data_publicacao'], i['link'])) | |
# Endereço da página web IBGE para "consumir" dados abertos da API. | |
url = "http://servicodados.ibge.gov.br/api/v3/noticias/" | |
# Parâmetros extras | |
param = {'counts': 0, } | |
# Agora vamos testar | |
main() | |
# Para não fazer acessos repetidos a plataforma | |
# recomenda-se salvar os dados obtidos na primeira chamada em aruivo de texto e | |
# fazer testes. | |
#with open('dados.txt', 'w') as fl: | |
# fl.write(dados) | |
# fl.close() |
Conhecimentos sobre programação não se restringir a ser usadas por cientistas da computação e engenheiros. Profissionais de outras áreas que sintam a necessidade de resolver questões que envolvem uma analise ou e otenção de grandes quantidades de dados podem se usar destes conhecimentos para automatizar parte do trabalho e fazer verificações e tambem gerar gráficos de acordo com suas necessidades.
- Unidade de Processamento Central (CPU)
- Unidade Lógica Aritmética (ALU)
- Memória RAM (Random Access Memory)
- Memória Permanente (HD, SSD)
- Dispositivos de Entrada e Saída (IO -> Input/Output)
Responsável por implementar controles sobre hardware e interface entre o usuário e o hardware.
- Linux (distribuições: Debian, Ubuntu, Linux Mint, Arch Linux, Slackware)
- Unix/BSD (OpenBSD, FreeBSD, PC-BSD)
- Windows (Windows XP, Windows 7, Windows 8, Windows 10)
- MAC OS
Definição: Conjunto de passos bem definidos que levam a resolução de um problema.
- Tipos de Dados
- Variaveis
- Estruturas de Repetição
- Estruturas de desvio condicional
- Funções
- Módulos
Definir tipos que serão armazenados por um dado elemento que surportará algumas operações de acordo com seu tipo.
Exemplo: tipo inteiro, real, complexo, caractere, string, lógico.
Obs.: O tipo "string" refere-se a conjunto de caracteres e é usado para guardar textos.
As variáveis ocupam um dado espaço na memória da máquina onde armazenará dados sobre um tipo especificado pelo programador.
Exemplos:
inteiro n = 0;
string nome;
nome="Pedro Henrique"
As variáveis n e nome guardam valores e são armazenadas na máquina em um endereço dessa memória (pense nessa memória como um vetor onde em cada posição do vetor é armazenado um dado.
No exemplo acima definimos n como tipo inteiro e o inicializamos com 0.
Já no segundo criamos uma variável do tipo string onde guardamos uma cadeia de caracteres. E a ela atribuimos o nome "Pedro Henrique".
Na linguagem Python o tipo da variável é definido quando ocorre a atribuição não sendo necessário a declaração apesar de possivel.
int : n;
float : x;
Acima definimos o as variáveis como inteiro e real em python. Apesar de possível não seria obrigatório.
Tano na criação de desvios condicionais e loops (repetição) criamos expressões condicionais. Onde um trecho do código é executado se a condição avaliada for verdadeira.
Para desvios usamos estruturas como "Se..Senão"
Exemplo:
real resposta = 0;
Se (b != 0) então {
resposta = a/b;
} Senão {
exiba("Erro divisão por zero não permitida.");
}
No exemplo acima a operação de divisão só ocorre se b for diferente de zero. Caso seja igual a zero pula-se a instrução "resposta = a/b" e executa-se o trecho dentro de "Senão" exibindo a mensagem de erro.
Se desejamos repetir uma determinara instrução sem ter de digita-las várias vezes usamos estruturas como "Para .. Faça", "Enquanto..".
Exemplos:
inteiro i = 1;
Enquanto i < 10 Faça {
Exiba("i: ", i);
i = i + 1;
}
No exemplo acima e exibido números inteiros de 1 até 10. O trecho "i = i + 1" auxilia controle do loop.
inteiro soma = 0
inteiro i;
Para i=1 Até i<11 Com i++ Faça {
soma = soma + i;
}
O código acima faz as somas dos dez primeiros inteiros de 1 até 10 e armazena o resultado final em soma
Muitas vezes determinados trechos de códigos são repetidos várias vezes e é utilizado em trechos de código diferentes. Desse modo seria útil poder isolar esses trechos em funções as quais poderiam ser reutilizadas em outros blocos de códigos sem repetir todo o bloco.
Exemplos:
Real Div(a,b) {
Real res = 0;
Se ( b != 0) {
res = a/b;
retorne res;
} Senão {
Exiba("Error!");
retorne Falso;
}
}
O exemplo acima implementa a função "Div" para usa-la fazemos
Real res = 0;
res = Div(4,2);
Exiba("Resultado res = ", res);
A variável "res" do tipo "Real" guardará o retorno da função Div.
Querendo reutilizar funções em outros projetos é bastante útil isolar estas funções em arquivos e guarda-los em bibliotecas de funções que será útil para ser reutilizada quando necessário.
Exemplos: Um módulo contendo implementações de funções matemáticas como divisão de números reais, exeponenciais, logaritmos, funções trigonométricas e etc.
Introdução a Computação Com Python
import json | |
import urllib.request | |
import matplotlib.pyplot as plt | |
# Acessa API do IBGE em dados "Agregados" para obter taxa de desmatamento | |
# na Mata Atlântica até 2010. | |
# Links: https://servicodados.ibge.gov.br/api/docs | |
# Link: https://sidra.ibge.gov.br/home/abate/brasil | |
url_base = '' | |
url = 'https://servicodados.ibge.gov.br/api/v3/agregados/3913/periodos/2010/variaveis/3852?localidades=N3[all]' | |
dt = urllib.request.urlopen(url).read() | |
data = dt.decode() | |
print('> ',data) | |
print('\n') | |
jdata = json.loads(data) | |
for i in jdata[0]['resultados'][0]['series']: | |
print('*Estado: {}\n*Serie: {}\n*Percentual Desmatado: {}%\n\n\n'.format(i['localidade']['nome'],'2010',i['serie']['2010'])) | |
estados = [ i['localidade']['nome'] for i in jdata[0]['resultados'][0]['series'] ] | |
percentual = [ float(j['serie']['2010']) for j in jdata[0]['resultados'][0]['series'] ] | |
ufestados = {"Acre": "AC", 'Alagoas': ' AL','Amapá': 'AP', 'Amazonas':'AM', 'Bahia': 'BA', 'Ceará': 'CE', | |
'Distrito Federal': 'DF', 'Espírito Santo': 'ES', 'Goiás': 'GO', 'Maranhão': 'MA', 'Mato Grosso': 'MT', | |
'Mato Grosso do Sul': 'MS', 'Minas Gerais': 'MG', 'Pará': 'PA', 'Paraíba': 'PB', 'Paraná': 'PR', | |
'Pernambuco': 'PE', 'Piauí': 'PI', 'Rio de Janeiro': 'RJ', 'Rio Grande do Norte': 'RN', 'Rio Grande do Sul': 'RS', | |
'Rondônia': 'RO', 'Roraima': 'RR', 'Santa Catarina': 'SC', 'São Paulo': 'SP','Sergipe': 'SE', 'Tocantins':'TO'} | |
uf = [ufestados[k] for k in estados] | |
print(uf) | |
plt.bar([i for i in range(len(uf))], percentual) | |
plt.title("Percentual De Desmatamento da Mata Atlântica até 2010") | |
plt.xticks([j + 0.2 for j in range(len(uf))],uf) | |
plt.show() | |
with open('dados-desmatamentos-mataAtlantica2010.json', 'w') as fl: | |
fl.write(data) | |
fl.close() |
Nenhum comentário:
Postar um comentário