Baixe o app para aproveitar ainda mais
Prévia do material em texto
PENSAMENTO COMPUTACIONAL COM PYTHON ADALBERTO DE OLIVEIRA PEREIRA PLANO DE AULA Introdução Instalando e usando o Python Introdução à lógica de programação e ambiente Python Tipos de dados e variáveis (utilizando a linguagem Python) Comandos de entrada e saída (utilizando a linguagem Python) Atribuição, operadores aritméticos (utilizando a linguagem Python) Comando condicional if (estruturas simples e compostas) — Python Comando for, variáveis contadoras e acumuladoras (utilizando a linguagem Python) Comando while, variáveis contadoras e acumuladoras (utilizando a linguagem Python) Aplicações utilizando comandos iterativos aninhados (nível fácil de aninhamento — Python) Criação, acesso e operadores de listas / Tuplas (Python) Criação, acesso e operadores de matrizes (Python) Extra: Arquivos e Gráficos Referências. 07/08/2022 INTRODUÇÃO 07/08/2022 A linguagem Python foi criada em 1990 na Holanda por Guido van Rossum, com o principal objetivo a atende necessidades nas áreas de engenharia. Sendo hoje usada na área de pesquisa e bem aceita nas principais empresas de tecnologia. ▪ Google (aplicações Web). ▪ Yahoo (aplicações Web). ▪ Microsoft (IronPython: Python para .NET). ▪ Nokia (disponível para as linhas recentes de celulares e PDAs). ▪ Disney (animações 3D). Python é um software de código aberto (com licença compatível com a General Public License (GPL), porém menos restritiva, permitindo que o Python seja inclusive incorporado em produtos proprietários). A especificação da linguagem é mantida pela Python Software Foundation2 (PSF). INTRODUÇÃO 07/08/2022 Com Python podemos trabalhas em: 1 – Python para que serve: data science (Machine Learning e Análise de dados) 2 – Python para desenvolvimento Web 3 – Python para desenvolvimento de aplicativos 4 – Python para que serve: finanças 5 - Desenvolvimento de jogos 6 - Aplicações GUI 7 - Networking 8 - Testing 9 - Robotics 10 - Gráficos 07/08/2022 # Crescimento da População Brasileira 1980-2016 # DataSus import matplotlib.pyplot as plt dados = open("populacao_brasileira.csv").readlines() x = [] y = [] for i in range(len(dados)): if i != 0: linha = dados[i].split(";") x.append(int(linha[0])) y.append(int(linha[1])) plt.bar(x, y, color="#e4e4e4") plt.plot(x, y, color='k', linestyle="--") plt.title("Crescimento da População Brasileira 1980-2016") plt.xlabel("Ano") plt.ylabel("População x100.000.000") #plt.show() plt.savefig("populacao_brasileira.png", dpi=300) PYTHON EXEMPLO (GRÁFICO A PARTIR DE DADOS DA POPULAÇÃO BRASILEIRA) 07/08/2022 Python pode fazer: ● Desenvolvimento Web ○ Django - https://www.djangoproject.com/ ○ Flask - http://flask.pocoo.org/ ○ Pyramid - https://trypyramid.com/ ● Análise de Dados, Ciência de Dados e Computação Científica ○ Propaganda sem vergonha - No meu blog tem uma série de posts sobre como começar com análise de dados usando Python: http://felipegalvao.com.br/blog/ciencia-de-dados-com-python-basico/ ○ pandas (análise de dados) - http://pandas.pydata.org/ ○ Numpy (computação científica) - http://www.numpy.org/ ○ SciPy (programação científica) - https://www.scipy.org/ ○ scikit-learn (Machine Learning) - http://scikit-learn.org/stable/ ○ BioPython (programação para biologia) -https://biopython.org/ ● Programação para Desktop ○ Camelot - http://www.python-camelot.com/ ○ PySide - http://wiki.qt.io/PySide ○ tkinter - https://docs.python.org/3/library/tkinter.html ● Programação multiplataforma ○ Kivy - https://kivy.org/#home ● Desenvolvimento de Jogos ○ Pygame - http://pygame.org/hifi.html ○ Panda3D - http://www.panda3d.org/ INSTALANDO PYTHON 07/08/2022 A implementação oficial do Python é mantida pela PSF e escrita em C, e por isso, é também conhecida como CPython. A versão estável mais recente está disponível para download no endereço: http://www.python.org/download/ Para a plataforma Windows, basta executar o instalador. Para outras plataformas, como em sistemas Linux, geralmente o Python já faz parte do sistema, porém em alguns casos pode ser necessário compilar e instalar o interpretador a partir dos arquivos fonte. Existem também implementações de Python para .NET (IronPython), JVM (Jython) e em Python (PyPy). Você ainda códigos desenvolvidos em Python 2, porém a versão mas atual parte da versão 3 http://www.python.org/download/ COMPILAÇÃO E INTERPRETAÇÃO 07/08/2022 Sendo o código fonte é traduzido pelo Python para bytecode, que é um formato binário com instruções para o interpretador. O bytecode é multiplataforma e pode ser distribuído e executado sem fonte original, observe que a extensão padrão .py. O interpretador Python pode ser usado de forma interativa, na qual as linhas de código são digitadas em um prompt (linha de comando) semelhante ao shell do sistema operacional. Para evocar o modo interativo basta executar o interpretador (se ele estiver no path): Porém vamos utilizar para IDE podemos usar o Visual Studio Code que possui um grupo de Extensões atualizadas para a linguagem Python. 07/08/2022 VISUAL STUDIO CODE PYTHON COMANDOS BÁSICOS 07/08/2022 A maioria dos comandos em Python são padronizados como Funções Como sabemos, funções podem retornar um valor final para ser utilizado posteriormente ou apenas exibir informações. A forma usual de chamar uma função é através de seu nome, com os parâmetros dentro de parênteses. Caso a função não receba parâmetros, deve-se incluir os parênteses, mas sem nada dentro deles. A função print, por exemplo, recebe como parâmetro o que será exibido por ela. print “Olá Mundo” #Versão 2 print (“Olá mundo”) #Versão 3 Obs: Use # para indicar comentário em Python PYTHON COMANDOS BÁSICOS – TIPOS DE DADOS 07/08/2022 Existem vários tipos simples de dados pré-definidos no Python, tais como: ▪ Números (inteiros, reais, complexos, ... ). ▪ Texto. Também, existem tipos que funcionam como coleções. Os principais são: ▪ Lista. ▪ Tupla. ▪ Dicionário. Interessante apontar que os tipos no Python podem ser: ▪ Mutáveis: permitem que os conteúdos das variáveis sejam alterados. ▪ Imutáveis: não permitem que os conteúdos das variáveis sejam alterados. Em Python, os nomes de variáveis são referências, que podem ser alteradas em tempos de execução. 07/08/2022 # Definição das primeiras variáveis a = 3 b = 7 print(a+b) # Mudança de tipo de uma variável a = "Agora uma string" print(a) # Definindo uma variável com base no valor atual de outra b = a print(b) # Definição de múltiplas variáveis com valores iguais x = y = z = 10 print(x) print(y) print(z) # Definição de múltiplas variáveis com valores diferentes x, y, z = 10, 20, 30 print(x) print(y) print(z) # Captação de input do usuário nome = input("Olá, qual o seu nome?\n") print("Olá, %s" % nome) PYTHON COMANDOS BÁSICOS – SINAIS E OPERADORES 07/08/2022 NO Python podemos utilizar uma série de operadores definidos para manipular número através de cálculos aritméticos, operações lógicas (que testam se uma determina condição é verdadeira ou falsa) ou processamento bit-a-bit (em que os números são tratados na forma binária). # Demonstração dos operadores matemáticos básicos print(4 + 5) print(6 - 3) print(7 * 8) print(12 / 4) print(63 % 10) print(5**3) # Isto imprimirá uma linha vazia e facilitará a visualização da saída print() 07/08/2022 # Demonstração dos operadores comparativos print(4 == 5) print(4 == 4) print(6 != 3) print(6 != 6) print(9 > 8) print(3 > 5) print(10 >= 10) print(13 >= 15) print(63 < 65) print(150 < 140) print(5 <= 5) print(12 <= 8) #Outros Recursos utilizados PYTHON COMANDOS BÁSICOS – ENTRADA DE DADOS 07/08/2022 A função input() Esta função é utilizada para captar informações enviadas pelo usuário. Ela pode receber um parâmetro, que será uma mensagem exibida ao usuário antes que ele insira o que deseja. Para o exemplo, logo após a exibição da mensagem “Olá, qual o seu nome?”, o programa aguardará o input do usuário. Após digitar seu nome, você deve apertar o Enter, para que o código prossiga nome = input("Olá, qual o seu nome?\n") print("Olá, %s" % nome) > Olá, qual o seu nome? Adal > Olá, Adal PYTHON COMANDOS BÁSICOS – MANIPULANDO STRINGS 07/08/2022 Uma string é definida como tudo que se encontra entre aspas simples (‘) ou duplas (“). Qual você usa é uma questão de gosto e opinião pessoal. Desta forma vamos aos primeiros exemplos: string1 = "Oi Python" string2 = ‘Fui' print(string1) print(string2) > Oi Python > Fui Inserindo variáveis em uma string Uma formatação de string poderá ser utilizada de forma básica através do %s para incluir outras strings em uma string, e %d para incluir um número inteiro (Integer) e desta forma para os demais tipos simples de dados. nome = “Adal" idade = 30 print("Meu nome é %s " % nome) print("Tenho %d anos" % idade) > Meu nome é Adal > Tenho 30 anos PYTHON COMANDOS BÁSICOS – MANIPULANDO STRINGS 07/08/2022 # Inserindo múltiplos valores em uma string nome = ' Adal ' idade = 30 print("Meu nome é %s e tenho %d anos" % (nome, idade)) # Strings como listas; acessando caracteres string9 = "Olá, meu nome é Adal " print(string9[0]) print(string9[3]) print(string9[21]) # Funções capitalize, upper e lower string10 = "olá, meu NOME é Adal " print(string10.capitalize()) print(string10.upper()) # Exemplo da função center() string11 = "olá, meu nome é Adal" print(string11.center(50,"*")) # Exemplo da função find string12 = "Olá, meu nome é Adal " substring1 = "meu" print(string12.find(substring1)) substring2 = "José" print(string12.find(substring2)) print(string12.find(substring1, 7)) print(string12.find(substring1, 2)) # Replace print(string17.replace("Felipe","José")) > Olá, meu nome é José 07/08/2022 PYTHON COMANDOS BÁSICOS – ESTRUTURAS CONDICIONAIS 07/08/2022 O “ if ” é uma estrutura de controle que executa um determinado bloco de código baseado em uma condição. Se a condição estipulada for verdadeira, o bloco logo abaixo será executado, repare que inicia-se um bloco com : (dois pontos) Caso a condição não seja verdadeira? Bem, aí usamos o “ else ” Se quisermos testar mais de uma condição? Usamos temos o “ elif ”. Podemos usar o “elif” quantas vezes quisermos, para testar quantas condições forem necessárias. Se nenhuma delas for verdadeira, o bloco “ else ”, localizado ao final, é executado: PYTHON COMANDOS BÁSICOS – ESTRUTURAS CONDICIONAIS 07/08/2022 # Primeira estrutura de controle: If nome = input("Digite aqui seu nome: ") if nome == “Adal": print("Olá, %s" % nome) if nome == "Felipe": print("Olá, %s" % nome) else: print("Olá, visitante") if nome == “Adal": print("Olá, Adal") elif nome == "Maria": print("Oi, Maria") elif nome == "Carlos": print("E aí, Carlos?") else: print("Olá, visitante") PYTHON COMANDOS BÁSICOS – ESTRUTURAS DE REPETIÇÃO - LOOP 07/08/2022 Python possui o loop “ for ”. Este loop itera sobre os elementos de uma sequência, executando o código no bloco indentado logo abaixo. Pode ser uma string, uma lista. Além do for temos também o While que faz a repetição de um bloco de código. Entretanto, ele executa este código enquanto uma certa condição definida for verdadeira. Dois comando importantes presentes nos loops são o “ break ” e o “continue ”. Esses comandos alteram o fluxo natural de um loop. No caso do “ break ”, ele para a execução do loop. Já no “ continue ”, ele não executa PYTHON COMANDOS BÁSICOS – ESTRUTURAS DE REPETIÇÃO - LOOP 07/08/2022 # Exemplo do loop while contador = 0 while contador < 5: print(contador) contador = contador + 1 # Exemplo com condição while true e break while True: nome = input("Digite seu nome ou sair para terminar o programa: ") if nome == "sair": break else: print("Olá, %s" % nome) # Break e continue em loops com for print("Exemplo break") for i in range(1,11): if i % 5 == 0: break print(i) print("Exemplo continue") for i in range(1,11): if i % 5 == 0: continue print(i) PYTHON COMANDOS BÁSICOS – DEFININDO UMA FUNÇÃO 07/08/2022 A estrutura básica para definir uma função é através da declaração “def” depois o nome da função e parênteses. Caso a função não receba parâmetros, os parênteses ficarão vazios. Se receber, os parâmetros devem ser nomeados na definição. Primeiro, vejamos um exemplo de uma função sem parâmetros. Primeiro definimos a função, e em seguida a chamamos: Funções podem ter valores retornados. Definimos o valor a ser retornado pela função através do comando “return”. O que é retornado pode ou não estar entre parênteses. Você também pode chamar uma função e utilizar parâmetros (Argumentos) que será enviado para dentro da função, podendo ainda definir um valor padrão, que será o valor daquele argumento se nenhum valor para ele for incluído na chamada da função. 07/08/2022 # Definição de função sem parâmetros e sem valor de retorno def print_ola_tres_vezes(): print("Ola Python") print("Ola Python") print("Ola Python") print_ola_tres_vezes() # Definição de uma função com parâmetro e valor de retorno def numero_ao_cubo(numero): valor_a_retornar = numero * numero * numero return(valor_a_retornar) numero = numero_ao_cubo(4) print(numero) # A chamada da função acima sem argumento retorna um erro # numero = numero_ao_cubo() # Definição de função com parâmetro com valor padrão def print_ola(nome="estranho"): print("Olá, " + nome print_ola("Priscilla") print_ola() 07/08/2022 # Chamada de função com parâmetros nomeados def print_infos(nome, idade): print("Olá, meu nome é %s e tenho %d anos" % (nome, idade)) print_infos(idade=30, nome="Felipe") # Definição da função com número variável de argumentos: *args e **kwargs def print_tudo_2_vezes(*args): for parametro in args: print(parametro + "! " + parametro + "!") print_tudo_2_vezes("Olá", "Python", "Felipe") def print_info(**kwargs): for parametro, valor in kwargs.items(): print(parametro + " - " + str(valor)) print_info(nome="Felipe", idade=30, nacionalidade="Brasil") PYTHON CRIAÇÃO, ACESSO A OPERADORES DE LISTA 07/08/2022 Para criar uma lista, basta definir seus itens entre colchetes “[]” e separado por vírgula. Também é possível criar uma lista vazia, definindo apenas o colchetes, sem nenhum item dentro deles. Vejamos alguns exemplos: alunos = ["José", "João", "Luiz"] notas = [8.5, 9.2, 6.7] print(alunos) print(notas) lista_vazia = [] print(lista_vazia) > ['José', 'João', 'Luiz'] > [8.5, 9.2, 6.7] > [] Para acessar os itens de uma lista, você utiliza o índice de cada uma delas, ou a posição que o item desejado ocupa na lista. O primeiro item é o de índice 0 (zero). Vejamos: print(alunos[0]) print(notas[2]) > José > 6.7 07/08/2022 E quando queremos adicionar novos itens a uma lista? Bem, nesse caso temos três funções. A primeira delas é a função “ append() ”. A função “ append() ”, chamada através de uma lista, recebe como parâmetro o item a ser adicionado ao final da lista: print(alunos) alunos.append('Alfredo') print(alunos) > ['José', 'João', 'Luiz'] > ['José', 'João', 'Luiz', 'Alfredo'] E quando queremos adicionar novos itens a uma lista? Bem, nesse caso temos três funções. A primeira delas é a função “ append() ”. A função “ append() ”, chamada através de uma lista, recebe como parâmetro o item a ser adicionado ao final da lista: print(alunos) alunos.append('Alfredo') print(alunos) > ['José', 'João', 'Luiz'] > ['José', 'João', 'Luiz', 'Alfredo'] E se não quisermos que o novo item fique no final? Bem, aí usamos a função “ insert() ”. Nesta função, indicamos o índice que o novo item deverá ficar. Os outros itens são ajustados de acordo: print(alunos) alunos.insert(1, "Daniela") print(alunos) > ['José', 'João', 'Luiz', 'Alfredo'] > ['José', 'Daniela', 'João','Luiz', 'Alfredo'] 07/08/2022 Repare como ‘Daniela’ se tornou o item no índice 1, conforme indicamos na função “ insert() ”. Por fim, temos a função “ extend() ”. Esta função adiciona uma lista de itens ao final de outra lista: print(alunos) novos_alunos = ['Carlos', 'Maria', 'Ana'] alunos.extend(novos_alunos) print(alunos) Para remover itens de uma lista, temos as funções “remove() ” e pop. A função “ remove() ”, apaga o item com base em seu valor: print(alunos) alunos.remove('João') print(alunos) > ['José', 'Daniela', 'João', 'Luiz', 'Alfredo', 'Carlos', 'Maria', 'Ana'] > ['José', 'Daniela', 'Luiz', 'Alfredo', 'Carlos', 'Maria', 'Ana'] Por último, é possível verificar se um determinado item consta ou não na lista. Para isso, usamos o “in”, da seguinte forma: print("José" in alunos) print("Felipe" in alunos) > True > False 07/08/2022 Exercícios: listas 1 – Dada a lista L = [5, 7, 2, 9, 4, 1, 3], escreva um programa que imprima as seguintes informações: a) tamanho da lista. b) maior valor da lista. c) menor valor da lista. d) soma de todos os elementos da lista. e) lista em ordem crescente. f) lista em ordem decrescente. PYTHON TUPLAS 07/08/2022 Tupla, assim como a Lista, é um conjunto sequencial de valores, onde cada valor é identificado através de um índice. A principal diferença entre elas é que as tuplas são imutáveis, ou seja, seus elementos não podem ser alterados. Dentre as utilidades das tuplas, destacam-se as operações de empacotamento e desempacotamento de valores. Uma tupla em Python é declarada da seguinte forma: Nome_tupla = (valor1, valor2, ..., valorN) Exemplo: T = (1,2,3,4,5) print(T) (1, 2, 3, 4, 5) print(T[3]) 4 T[3] = 8 Traceback (most recent call last): File "C:/Python34/teste.py", line 4, in T[3] = 8 TypeError: 'tuple' object does not support item assignment PYTHON MÓDULOS 07/08/2022 Para o Python, módulos são arquivos fonte que podem importados para um programa. Podem conter qualquer estrutura do Python e são executados quando importados, . Eles são compilados quando importados pela primeira vez e armazenados em arquivo (com extensão “.pyc” ou “.pyo”), possuem namespace próprio e aceitam Doc Strings. São objetos Singleton (é carregada somente uma instância em memória, que fica disponível de forma global para o programa). Os Módulos são carregados via o comando import import os print os.name Também possível importar módulos de forma relativa: from os import name print name O caractere “*” pode ser usado para importar tudo que está definido no módulo: from os import * print name PYTHON ARQUIVOS 07/08/2022 Os arquivos no Python são representados por objetos do tipo file , que oferecem métodos para diversas operações de arquivos. Arquivos podem ser abertos para leitura ('r', que é o default), gravação ('w') ou adição ('a'), em modo texto ou binário('b’). Em Python: ▪ sys.stdin representa a entrada padrão. ▪ sys.stdout representa a saída padrão. ▪ sys.stderr representa a saída de erro padrão. A entrada, saída e erro padrões são tratados pelo Python como arquivos 07/08/2022 import sys # Criando um objeto do tipo file temp = open('temp.txt', 'w') # Escrevendo no arquivo for i in range(100): temp.write('%03d\n' % i) # Fechando temp.close() # Abrindo novamente o arquivo temp = open('temp.txt') # Escrevendo no terminal for x in temp: # Escrever em sys.stdout envia # o texto para a saída padrão sys.stdout.write(x) temp.close() PYTHON ARQUIVOS - EXEMPLO PYTHON MATRIZES 07/08/2022 A classe matrix implementa operações de matrizes. Exemplos: import numpy print ('Criando uma matriz a partir de uma lista:') l = [[3,4,5], [6, 7, 8], [9, 0, 1]] Z = numpy.matrix(l) print (Z) # [[3 4 5] # [6 7 8] # [9 0 1]] print ('Transposta da matriz:') print (Z.T) # [[3 6 9] # [4 7 0] # [5 8 1]] print ('Inversa da matriz:') print (Z.I) # [[-0.23333333 0.13333333 0.1 ] # [-2.2 1.4 -0.2 ] # [ 2.1 -1.2 0.1 ]] # Criando outra matriz R = numpy.matrix([[3, 2, 1]]) No Python, além dos recursos matemáticos que fazem parte da distribuição padrão, o processamento numérico pode ser feito através do NumPy e outros pacotes que foram construídos a partir dele. NumPy NumPy53 é um pacote que inclui: ▪ Classe matrix. ▪ Várias funções auxiliares. PYTHON MÓDULO : MATPLOTLIB 07/08/2022 Existem vários pacotes de terceiros para a geração de gráficos disponíveis para Python, sendo que o mais popular deles é o Pylab / Matplotlib56 . O pacote tem dois módulos principais: ▪ matplotlib: módulo que oferece uma abstração orientada a objetos aos recursos do pacote. ▪ pylab: módulo que oferece uma coleção de comandos que se assemelha ao Matlab, e é mais adequado para o uso interativo. from pylab import * ent = arange(0., 20.1, .1) # Calcula os cossenos da entrada sai = cos(ent) # Plota a curva plot(ent, sai) # Texto para o eixo X xlabel('entrada') # Texto para o eixo Y ylabel('cosseno') # Texto no topo da figura title('Cossenos') # Ativa a grade grid(True) # Apresenta a figura resultante na tela show() REFERÊNCIAS 07/08/2022 • BEAZLEY, D. ; JONES, B.K. Python Cookbook. Ed. Novatec, 2013. • BORGES, L. E. Python para desenvolvedores. 1ed. São Paulo – SP: Novatec, 2014. • GRUPO PET-TELE. Tutorial de introdução ao Python. Niterói – RJ: Universidade • Federal Fluminense (UFF) / Escola de Engenharia, 2011. (Apostila). • LABAKI, J. Introdução a python – Módulo A. Ilha Solteira – SP: Universidade Estadual • Paulista (UNESP), 2011. (Apostila). • MENEZES, N. N. C. Introdução à programação com python. 2ed. São Paulo – SP: • Novatec, 2014. • PYTHON. Python Software Foundation. Disponível em: <https://www.python.org/>. • Acesso em: Agosto de 2022.
Compartilhar