Algoritmos de Programao Introduo ao PYTHON Bibliografia Python
Algoritmos de Programação Introdução ao PYTHON Bibliografia: Python para Desenvolvedores, 2ªed. BORGES. Luiz Eduardo O’REILLY, Media, Python Fluente
Características da Disciplina � 40 horas � 4 h horas de avaliações � duas avaliações e uma final � 4 h revisões � 32 h conteúdo e práticas
O que é um Algoritmo �Para CORMEN & LEISERSON, um algoritmo é qualquer procedimento computacional bem definido que toma algum valor ou conjunto de valores como entrada e produz algum valor ou conjunto de valores de saída. Portanto, um algoritmo é uma sequencia de passos computacionais que transformam a entrada na saída, ou ainda, uma ferramenta para resolver um problema computacional bem especificado.
Prefácio �As linguagens dinâmicas eram vistas no passado apenas como linguagens script, usadas para automatizar pequenas tarefas, porém, com o passar do tempo, elas cresceram, amadureceram e conquistaram seu espaço no mercado, a ponto de chamar a atenção dos grandes fornecedores de tecnologia.
Introdução �Python �É uma linguagem de altíssimo nível (em inglês, Very High Level Language) orientada a objeto, de tipagem dinâmica e forte, interpretada e interativa. �Para LUTZ & ASCHER, o Python é uma linguagem de propósito geral, frequentemente aplicada em funções de script.
Características �O Python possui uma sintaxe clara e concisa, que favorece a legibilidade do código fonte, tornando a linguagem mais produtiva. �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 Foundation (PSF).
Histórico �A linguagem foi criada em 1990 por Guido van Rossum, no Instituto Nacional de Pesquisa para Matemática e Ciência da Computação da Holanda (CWI) e tinha originalmente foco em usuários como físicos e engenheiros. O Python foi concebido a partir de outra linguagem existente na época, chamada ABC.
Cultura � O nome Python foi tirado por Guido van Rossum do programa da TV britânica Monty Python Flying Circus, e existem várias referências na documentação da linguagem ao programa, como, por exemplo, o repositório oficial de pacotes do Python se chamava Cheese Shop, que era o nome de um dos quadros do programa. Atualmente, o nome do repositório é Python Package Index (PYPI).
Executando programas �Desenvolvimento interativo: �IDE python 3 e o IDLE
Sintaxe �Um programa feito em Python é constituído de linhas, que podem continuar nas linhas seguintes, pelo uso do caractere de barra invertida () ao final da linha ou parênteses, colchetes ou chaves, em expressões que utilizam tais caracteres. �O caractere #marca o inicio de comentário. Qualquer texto depois do # será ignorado até o fim da linha , com exceção dos comentários funcionais.
Executando programas �Exemplo de programa em Python: ( )
Sintaxe
Os arquivos. py �Os códigos são armazenados em arquivos com a extensão. PY e são “executáveis” a partir de um duplo clique, uma vez que o interpretador PYTHON é chamado assim que o SO identifica o tipo de arquivo ativado. �É possível também, ativar o código PYTHON estando no COMMAND do Windows e digitar diretamente no PROMPT o nome do arquivo. PY desejado.
Tipagem dinâmica �Python utiliza tipagem dinâmica, o que significa que o tipo de uma variável é inferido pelo interpretador em tempo de execução (isto é conhecido como Duck Typing). No momento em que uma variável é criada através de atribuição, o interpretador define um tipo para a variável, com as operações que podem ser aplicadas. �A tipagem do Python é forte, ou seja, o interpretador verifica se as operações são válidas e não faz coerções automáticas entre tipos incompatíveis. Para realizar a operação entre tipos não compatíveis, é necessário converter explicitamente o tipo da variável ou variáveis antes da operação.
Tipos Simples de Dados �Numéricos �Inteiros � Os tipos numéricos INTEIROS usados em contagens e quaisquer valores que não necessitem de decimais. Função de conversão é a int() Ex: >>> a = 10 b = int(“ 20”) #a string foi convertida em inteiro �Reais � Os tipos REAIS são comumente usados em cálculos diversos. Função de conversão é a float()
Tipos Simples de Dados �Textuais �String � São do tipo TEXTO, contendo em seu corpo um índice de caracteres acessível por contagem crescente e decrescente � Ex: Índice decrescente -7 -6 -5 -4 -3 -2 String com 7 caracteres Índice decrescente >>> a = “TECINFO” >>> a[0] ‘T’ >>> a[-1] ‘O’ T 0 E 1 C 2 I 3 N 4 -1 F O 5 6
Comandos Básicos de Entrada e Saída �O comando print() �Este é o principal comando de saída de dados do console PYTHON, serve para imprimir os conteúdos das variáveis e dados diversos para feedback ao desenvolvedor. �Ex: >>> a = "Professor" >>> print("Bom dia! " + a) Bom dia! Professor Vemos um exemplo de concatenação de strings
Comandos Básicos de Entrada e Saída �O comando print() – Interpolando textos �Interpolar é a inserção de um trecho de texto dentro de outro. A interpolação, ocorre de várias formas, e, algumas linguagens e bibliotecas, proporcionam maneiras bastante interessantes e diferentes para interpolarmos valores. O Python fornece um conjunto de ferramentas bastante poderosas para esse fim. �Operador “%” é usado para fazer interpolação de strings. A interpolação é mais eficiente no uso de memória do que a concatenação convencional.
Comandos Básicos de Entrada e Saída �O comando print() – Interpolando textos >>> sexo = "masculino" >>> nome = "Cláudio" >>> interpolar = "Sexo é igual a %s e o nome é igual %s "%(sexo, nome) >>> print(interpolar) 'Sexo é igual a masculino e o nome é igual Cláudio '
Comandos Básicos de Entrada e Saída �O comando print() – Interpolando textos �Neste exemplo, vamos colocar uma String entre chaves dentro do texto, em seguida, com a função format(), vamos associar os nomes definidos entre chaves ao texto passando-os como argumentos de função >>> interpolar = "Sexo é igual a {SEXO} e o nome é igual {NOME}“. format(SEXO=sexo, NOME=nome) >>> interpolar 'Sexo é igual a masculino e o nome é igual Cláudio'
Comandos Básicos de Entrada e Saída �A função input() – Entrada de dados � Refere-se a entrada de dados do mundo externo para o meio digital. É dessa forma que enviamos informações para dentro das nossas aplicações. >>> num = input("Digite um número: ") "Digite um número: “ 23 >>>print(num) ‘ 23’
Operações Básicas e Variáveis �O Python pode ser utilizado como uma calculadora matemática avançada. Praticamente, todos os operadores aritméticos funcionam da mesma forma como os conhecemos da matemática elementar. �Por exemplo, para trabalharmos com as 4 principais funções matemáticas, a soma, subtração, multiplicação e divisão, temos os operadores conforme tabela a seguir. Operação Operador Adição + Subtração - Multiplicação * Divisão /
Operações Básicas e Variáveis �Tempos também, operadores para exponenciação, obtenção da parte inteira de uma divisão, extração do módulo da divisão, conforme pode ser visto na tabela a seguir: Operação Operador Exponenciação ** Parte inteira // módulo %
Operações Básicas e Variáveis �Operações matemáticas básicas >>> a = 3 >>> b = 4 >>> a + 1, a (4, 2) >>> b * 3, b (12, 2. 0) >>> a % 2, b (1, 16) >>> 2 + 4. 0, (6. 0, 16. 0) #nome criado – 1 #adição, subtração / 2 #multiplicação, divisão ** 2 #mód(resto), potenciação 2. 0 ** b # conversões
Controle de fluxo �É muito comum em um programa que certos conjuntos de instruções sejam executados de forma condicional, em casos como validar entradas de dados, por exemplo. Sintaxe:
Controle de fluxo �Uma Estrutura de Condição, como o próprio nome já diz, verifica a condição dos argumentos passados e, executa um comando caso a condição seja verdadeira, como se pode ver no algorítimo abaixo: SE condição ENTÃO comando Toda condição retornará um valor entre True/False, definindo o comportamento da estrutura, se ativará o comando caso seja True, senão, o comando será ignorado.
Controle de fluxo �Para entendermos melhor como se dá o processo de teste de uma condicional, temos os operadores condicionais, a seguir: Operador Tipo Valor == Igualdade Verifica a igualdade entre dois valores. != Igualdade Verifica a diferença entre dois valores. > Comparação Verificar se o valor A é maior que o valor B. < Comparação Verifica se o valor A é menor que o valor B. >= Comparação Verifica se o valor A é maior ou igual ao valor B. <= Comparação Verifica se o valor A é menor ou igual ao valor B. In Seqüência Verifica se o valor A está contido em um conjunto.
Controle de fluxo �Estrutura condicional simples: if soma > 0: print("Maior que Zero. “)
Controle de fluxo �Estrutura Condicional Composta executa um comando quando a condição for verdadeira e outra condição quando for falsa: if soma > 0: print("Maior que Zero. “) else: print("Menor que Zero. “)
Controle de fluxo �Estruturas Codicionais Aninhadas são várias condições em cascatas, ou seja, um IF dentro de outro IF. if soma > 0: print("Maior que Zero. “) elif soma = 0: print("Igual a Zero. “) else: print("Menor que Zero. “)
Controle de fluxo � Expressão Condicional. <expressao 1> if <condicao> else <expressao 2> Primeiro, a condição é avaliada (ao invés de expressao 1), se a condição for verdadeira, expressao 1 é avaliada e seu valor é retornado; caso contrário, expressao 2 é avaliada e seu valor retornado. Ex: >>> x = 10 >>>print ("par" if (x % 2 == 0) else "impar")
Laços de Repetição �Estrutura responsável por repetir contada ou condicionadamente blocos de comando: �Ciclos contados: Laços com repetição finita a partir de um contador. �Ciclos condicionados: Laços cuja repetição cessará ou continuará ao satisfazer uma condição.
O Laço FOR �Para percorrer sequências previamente conhecidas utilize o laço for. �O que é mesmo uma sequência? � Sequências são coleções ordenadas embutidas: strings, listas, tuplas e dicionários. Ex: >>> lista = ["p", "y", "t", "h", "o", "n"] >>> for item in lista: print(item) p y t h o n
O Laço FOR �Usando listas com a função interna enumerate. >>> for key, value in enumerate(lista): print(key, value) 0 p 1 y 2 t 3 h 4 o 5 n
O Laço FOR �Podemos utilizar o laço for com outras funções como por exemplo o range >>> for i in range(5): print(i) 0 1 2 3 4
O laço while �Um laço simples com while >>> count = 0 >>> while count <= 5: print(count) count += 1 0 1 2 3 4 5
O laço while �Exemplo com break. >>> count = 0 >>> while count <= 5: print(count) count += 1 if count > 3: break 0 1 2 3 OBS: continue e break, respectivamente: Para iniciar imediatamente a próxima volta do loop, use o comando continue. Para encerrar imediatamente o loop, use o comando break
Esquisitices. . . �for-else ? while-else ? �Então, é isso mesmo! # # while # count = 0 while count <= 5: print(count) count += 1 else: print('após iteração') # # for i in range(5): print(i) else: print('após iteração')
É bem docinho. . �Limpando a tela pelo terminal do DOS �Já vimos que não há um comando clear para limpar a tela do shell, no entanto, esse recurso pode ser feito quando usamos nossas aplicações python diretamente no CMD do windows, bastando para isso, usar o código abaixo: import os os. system('cls' if os. name == 'nt' else 'clear') Se o SO for windows use o comando CLS nativo, senão, subentendendo que seja o SO LINUX será usado o comando CLEAR.
Ok Let’s play. . . �Crie um programa que calcule a média de 4 notas, sendo elas: �Parcial 1 = 15% da média �Parcial 2 = 15% da média �Conclusiva = 30% da media �Simulado = 40% da média �Mostre se o aluno está aprovado ou reprovado levando em conta a média = 8. 0 e, o programa deve perguntar se deseja fazer um novo calculo através da pergunta “Deseja continuar? s/n” �Ao selecionar a opção SIM a tela deve ser limpa e um novo calculo deve ser iniciado.
- Slides: 40