IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual: Resolução de Problemas Algorítmicos Início 1 Identificar o problema 2 Definir as entradas e as saídas Decompor 3 Projetar o algoritmo 4 Converter o algoritmo em declarações da linguagem de programação 5 Testar o programa resultante Fim Refinar passo a passo Conteúdo Variáveis Tipos de variáveis Entrada e saída de dados Boas práticas de programação Erros Conteúdo Variáveis Tipos de variáveis Entrada e saída de dados Boas práticas de programação Erros O que são variáveis? Variável é uma região de memória do computador que contém um valor e conhecida por um nome especificado pelo usuário. Identificador Moedas Nome Pi Conteúdo 12 Maria 3.14 ... Condicao Falso Como definir variáveis? Identificador Atribuição Expressão area = 20 Identificador • Nome dado aos objetos utilizados no programa (variáveis, constantes, funções, etc.) Atribuição • Comando que define ou redefine o valor armazenado em uma variável Expressão • Pode ser um valor ou um conjunto de comandos que resulta em um valor Regras para identificar variáveis O nome da variável deve iniciar obrigatoriamente com uma letra do alfabeto ou o caractere sublinhado (_). Os demais caracteres podem conter letras, números ou o caractere sublinhado (_). Não use uma palavra-chave reservada: Regras para identificar variáveis :: Cuidados Não use espaços. Letras maiúsculas e minúsculas são diferentes. Variáveis Area e area são distintas. Regras para identificar variáveis :: Exemplos Nome Válido Comentário dia1 diaDaSemana dia da semana Contém espaços dia_da_semana dia#3 Usa símbolo inválido 3o_dia Começa com número _dia Variáveis :: Observações Se você declarar uma variável já existente, o conteúdo anterior será perdido. >>> >>> 6 >>> >>> 22 a = 6 a a = 22 a O valor das variáveis muda com o tempo O computador executa um script linha por linha. Quando alteramos o valor de uma variável, o valor anterior é substituído pelo novo. O valor antigo fica perdido para sempre. O valor das variáveis muda com o tempo dívida compra 0 ? 0 100 2 compra = 100 100 100 3 divida = divida + compra 100 200 4 compra = 200 300 200 5 divida = divida + compra 300 300 6 compra = 300 600 300 7 divida = divida + compra 600 0 8 compra = 0 600 0 9 print(divida) 1 divida = 0 Conteúdo Variáveis Tipos de variáveis Entrada e saída de dados Boas práticas de programação Erros Tipos de dados O tipo define a natureza dos dados que a variável armazena. Tipos mais comuns no Python: Inteiro Numérico Real Tipos Lógico String de caracteres Tipos Numéricos :: Classificação Inteiros (int) Reais (float) • São números sem a parte fracionária. • Exemplos: 1 | 0 | -5 | 567 • São números com parte fracionária. • Também conhecidos como ponto flutuante. • Exemplos: 1.0 | 3.1415 | 2.7182 Tipos Numéricos :: Observações 1 ≠ 1.0 Números inteiros e de ponto flutuante são representados de maneiras distintas na memória do computador. Em Python e na maioria das linguagens de programação, utilizamos o ponto – e não a vírgula – como separador entre a parte inteira e a parte fracionária de um número ponto flutuante. Tipos Numéricos :: Exemplos Número Inteiro 5 5.0 4.3 -2 100 1.333 Ponto flutuante Representação de números reais :: Observações (1) Variáveis de ponto flutuante são representações da realidade na memória do computador. O conjunto dos números reais é infinito, mas o espaço de armazenamento em memória é um recurso finito. Logo, somente alguns elementos do conjunto de números reais podem ser representados em um computador. Representação de números reais :: Observações (2) Variáveis de ponto flutuante são guardadas no formato exponencial: sinal × mantissa × baseexpoente Épsilon (ε): pequeno intervalo entre cada número real representável em computador e seu vizinho mais próximo. O valor de ε aumenta à medida que o expoente aumenta. números representáveis –max números representáveis 0 –min x +min x+ε +max Representação de números reais :: Exemplo de limitação >>> 10**3 1000.0001 + 0.0001 >>> 10**30 + 0.0001 1e+30 Tipo Lógico Uma variável do tipo lógico (ou booleano) armazena um conteúdo que assume apenas um de dois valores possíveis: True (verdadeiro) False (falso) Note que as iniciais T e F são escritas em maiúsculas. Tipo Lógico :: Exemplos >>> 2 < 3 True >>> 3 < 2 False >>> (15/3) < 5 False >>> (15/3) == 5 True Strings de caracteres Uma string (= corda) é uma cadeia de caracteres. Uma cadeia de caracteres é um sequência de símbolos, tais como letras, números, sinais de pontuação, etc., que formam textos em geral. m o A o n o h t y P Strings de caracteres O início e o fim de uma string são indicados por aspas ("), de modo a separar o conteúdo da string do restante do texto do programa. texto = "Amo o Python" Você pode usar espaços em uma string de caracteres. Strings de caracteres Se você quiser incluir o símbolo de aspas em uma string, use a expressão \". >>> texto2 = "Amo o \"Python\"." >>> print(texto2) Amo o "Python". Conteúdo Variáveis Tipos de variáveis Entrada e saída de dados Boas práticas de programação Erros Entrada e Saída de Dados :: Operação Básica Entrada Saída Entrada são os dados que o programa recebe durante sua execução. Uma forma comum de entrada é pelo teclado. Uma vez que a entrada é recebida, ela é normalmente processada pelo programa. Os resultados do processamento são exibidos na tela como saída programa. Programação :: Papéis Usuário • Utiliza o script • Insere dados Programador • Projeta e escreve o script Comandos de Entrada e Saída Comandos de Entrada Comandos de Saída • Permitem que o usuário do programa entre com novos valores sem alterar o código do script. • Exemplo: • Função input() • Exibem resultados no Shell. • Exemplos: • Função print() Saída de dados :: print() Exibe os dados armazenados na variável usada como argumento. >>> print("Oi") >>> x = 109 >>> print(x) >>> texto = "ola mundo" >>> print(texto) Entrada de dados pelo usuário :: input() Exibe, no Shell, um texto de orientação para o usuário e aguarda que este digite um valor. >>> var = input("Digite um numero: ") O Shell ficará travado até que o usuário digite um valor. O valor digitado será armazenado na variável var. O valor digitado é interpretado como uma string. Por isso, deve ser convertido ao tipo desejado (inteiro, float, lógico). Entrada e Saída de Dados :: Exemplo >>> var = input("Digite um numero: ") 1 2 3 >>> print("Voce digitou", var) 4 1 Digite um numero: 15 3 4 var = 15 Voce digitou 15 2 Entrada de Dados pelo Usuário pelo Script • Dinâmico: o script pode ser usado para diversas instâncias do problema • Estático: o script tem de ser modificado para cada instância do problema cat1 = int(input("Digite o valor do cateto: ")) cat1 = 3 Problema 1 Um estádio oferece três categorias de assentos: Classe A – R$ 50 Classe B – R$ 30 Classe C – R$ 20 Escreva um programa que pergunta quantos bilhetes de cada classe foram vendidos, e, em seguida, exibe a renda gerada pela venda dos ingressos. Problema 1 :: Definir Entradas e Saídas Entradas Saídas Grandeza Unidade de medida Faixa de valores Nº de bilhetes A bilhetes ≥0 Nº de bilhetes B bilhetes ≥0 Nº de bilhetes C bilhetes ≥0 Renda R$ ≥0 Problema 1 :: Solução início nA nB nC precoA ← 50 precoB ← 30 precoC ← 20 renda ← precoA * nA + precoB * nB + precoC * nC renda fim Problema 1 :: Converter o algoritmo em programa início nA nB nC precoA ← 50 precoB ← 30 precoC ← 20 renda ← precoA * nA + precoB * nB + precoC * nC renda fim nA = input("No. bilhetes A: ") nB = input("No. bilhetes B: ") nC = input("No. bilhetes C: ") precoA = 50.0 precoB = 30.0 precoC = 20.0 renda = precoA * nA + precoB * nB + precoC * nC print(renda) Problema 1 :: Testando o programa nA = input("No. bilhetes A: ") nB = input("No. bilhetes B: ") nC = input("No. bilhetes C: ") precoA = 50.0 precoB = 30.0 precoC = 20.0 renda = precoA * nA + precoB * nB + precoC * nC print(renda) Por que não funciona? p0xx_bilhetes.py Conteúdo Variáveis Tipos de variáveis Entrada e saída de dados Boas práticas de programação Erros Boas práticas de programação :: Comentários Códigos devem ser escritos para serem lidos por seres humanos. Escreva os comentários no momento em que estiver escrevendo o código. Os comentários devem acrescentar informação, e não frasear o comando: # Multiplicacao de b por h: area = b * h # Calculo da area do retangulo: area = b * h Boas práticas de programação :: Comentários Faça um cabeçalho no início do arquivo para explicar a finalidade do script #------------------------------------------# UNIVERSIDADE FEDERAL DO AMAZONAS # FULANO DA SILVA # DATA: 25/04/2013 # # OBJETIVO: Calcular o volume de combustivel # em um tanque cilindrico #------------------------------------------- Boas práticas de programação :: Identificadores (1/2) Sempre use nomes descritivos e fáceis de lembrar para suas variáveis: x = 1.3 raio = 2.2 Use sempre letras minúsculas em nomes de variáveis: raio = 1.3 Raio = 4.6 RAIO = 7.9 raio_interno = 1.3 raio_meio = 4.6 raio_externo = 7.9 Boas práticas de programação :: Identificadores (2/2) Não utilize acentos nos nomes das variáveis. Pode funcionar em alguns sistemas, mas em outros, não. área = 1.3 area = 2.2 Boas práticas de programação :: Nome dos arquivos Não use espaço e nem acentos no nome dos arquivos de script. caixa eletrônico.py caixa_eletronico.py caixaEletronico.py Boas práticas de programação :: Expressões Use espaços em branco para melhorar a legibilidade. Utilize parênteses para melhorar a compreensão e evitar erros, mesmo que não alterem a precedência. H=(A**2+B**2)**0.5 H = ((A ** 2) + (B ** 2)) ** 0.5 Boas práticas de programação Defina todas as variáveis que você vai utilizar no início de cada script, a fim de tornar mais fácil a manutenção do código. nivel altura raio volume = = = = 0.8 2.3 1.5 0 # # # # nivel de combustivel (m) altura do tanque (m) raio da secao vertical (m) volume de combustivel (m3) Conteúdo Variáveis Tipos de variáveis Entrada e saída de dados Boas práticas de programação Erros Erros Lidar com erros faz parte do desenvolvimento de programas. Erros de sintaxe Erros de execução Erros de sintaxe Os erros de sintaxe são violações das regras de escrita da linguagem. Quando um programa Python contém um erro de sintaxe, uma mensagem de erro de sintaxe é produzida pelo interpretador. Programas com erros de sintaxe não são executados. ¤¥₪ Erros de sintaxe x1 = 3.14 Instrução correta. Print(x1) Letra “P” maiúscula no lugar de “p” minúsculo. x 1 = 3.14 Uso errôneo de espaço no nome da variável (entre x e 1). x1 = 3. 14 Uso errôneo de espaço no valor numérico (entre o ponto e 1). print(x1 \ 10) A contra-barra não é um operador válido. Erros de execução Erros de execução são violações da semântica da linguagem. A maioria dos erros de tempo de execução não pode ser detectada antes da execução do programa. Erros de execução x1 = 3.14 x2 = 0 print(x1 / x2) print(X2) Instruções corretas, que definem as variáveis x1 e x2, usadas nas instruções seguintes. Um erro de execução é causado por uma divisão por zero. Um erro de execução é causado porque nenhuma variável X2 (inicial maiúscula) foi definida previamente. Referências bibliográficas Menezes, Nilo Ney Coutinho (2010). Introdução à Programação com Python. Editora Novatec. HETLAND, Magnus Lie (2008). Beginning Python: From Novice to Professional. Springer eBooks, 2ª edição. Disponível em: http://dx.doi.org/10.1007/978-1-4302-0634-7. Gaddis, Tony (2012). Starting out with Python, 2ª edição. Editora Addison-Wesley. DIERBACH, Charles. Introduction to Computer Science using Python: a computational problemsolving approach. John Wiley & Sons, 2012. Dúvidas?