IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma:...

54
IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual:

Transcript of IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma:...

Page 1: IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual:

IEC037Introdução à Programação de

ComputadoresAula 08 – Variáveis em Python

Turma: Professor: Sala:E-mail:Página:Ambiente virtual:

Page 2: 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

Definir as entradas e as saídas

Fim

Identificar o problema

Início

Converter o algoritmo em declarações da linguagem de

programação

Projetar o algoritmoDecompor

Refinarpasso a passo

Testar o programa resultante

1

2

3

4

5

Page 3: IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual:

Conteúdo

Variáveis

Tipos de variáveis

Entrada e saída de dados

Boas práticas de programação

Erros

Page 4: IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual:

Conteúdo

Variáveis

Tipos de variáveis

Entrada e saída de dados

Boas práticas de programação

Erros

Page 5: IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual:

Variável é uma região de memória do computador que contém um valor e conhecida por um nome especificado pelo usuário.

O que são variáveis?

Identificador

12

Maria

3.14

Falso

Moedas

Nome

...

Condicao

Conteúdo

Pi

Page 6: IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual:

• Nome dado aos objetos utilizados no programa (variáveis, constantes, funções, etc.)Identificador

• Comando que define ou redefine o valor armazenado em uma variávelAtribuição

• Pode ser um valor ou um conjunto de comandos que resulta em um valorExpressão

Como definir variáveis?

area = 20

Identificador ExpressãoAtribuição

Page 7: IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual:

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:

Page 8: IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual:

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.

A a≠

Page 9: IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual:

Regras para identificar variáveis:: Exemplos

Nome Válido Comentário

dia1

diaDaSemana

dia da semana

dia_da_semana

dia#3

3o_dia

_dia

Contém espaços

Usa símbolo inválido

Começa com número

Page 10: IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual:

Variáveis:: Observações

Se você declarar uma variável já existente, o conteúdo anterior será perdido.

>>> a = 6>>> a6>>> a = 22>>> a22

Page 11: IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual:

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.

Page 12: IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual:

O valor das variáveis muda com o tempo

divida = 0

compra = 100

divida = divida + compra

compra = 200

divida = divida + compra

compra = 300

divida = divida + compra

compra = 0

print(divida)

10 ?compradívida

20 100

3100 100

4100 200

5300 200

6300 300

7600 300

8600 0

9600 0

Page 13: IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual:

Conteúdo

Variáveis

Tipos de variáveis

Entrada e saída de dados

Boas práticas de programação

Erros

Page 14: IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual:

Tipos de dados

O tipo define a natureza dos dados que a variável armazena.

Tipos mais comuns no Python:

Tipos

NuméricoInteiro

RealLógico

String de caracteres

Page 15: IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual:

Tipos Numéricos:: Classificação

• São números sem a parte fracionária.

• Exemplos: 1 | 0 | -5 | 567

Inteiros(int)

• São números com parte fracionária.• Também conhecidos como ponto

flutuante.• Exemplos: 1.0 | 3.1415 | 2.7182

Reais(float)

Page 16: IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual:

Tipos Numéricos:: Observações

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.

1 ≠ 1.0

Page 17: IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual:

Tipos Numéricos:: Exemplos

Número Inteiro Ponto flutuante

5

5.0

4.3

-2

100

1.333

Page 18: IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual:

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.

Page 19: IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual:

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.

x x+ε

0 –max –min +min +max

números representáveis

números representáveis

Page 20: IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual:

Representação de números reais:: Exemplo de limitação

>>> 10**30 + 0.00011e+30

>>> 10**3 + 0.00011000.0001

Page 21: IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual:

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.

Page 22: IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual:

Tipo Lógico:: Exemplos

>>> 2 < 3True

>>> 3 < 2False

>>> (15/3) < 5False

>>> (15/3) == 5True

Page 23: IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual:

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.

Am o

oP y t h o n

Page 24: IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual:

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.

Você pode usar espaços em uma string de caracteres.

texto = "Amo o Python"

Page 25: IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual:

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".

Page 26: IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual:

Conteúdo

Variáveis

Tipos de variáveis

Entrada e saída de dados

Boas práticas de programação

Erros

Page 27: IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual:

Entrada e Saída de Dados:: Operação Básica

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.

Entrada Saída

Page 28: IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual:

Programação:: Papéis

Usuário

• Utiliza o script• Insere dados

Programador

• Projeta e escreve o script

Page 29: IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual:

Comandos de Entrada e Saída

Comandos de Entrada

• Permitem que o usuário do programa entre com novos valores sem alterar o código do script.

• Exemplo:• Função input()

Comandos de Saída

• Exibem resultados no Shell.

• Exemplos:• Função print()

Page 30: IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual:

Saída de dados:: print()

Exibe os dados armazenados na variável usada como argumento.

>>> x = 109>>> print(x)

>>> texto = "ola mundo">>> print(texto)

>>> print("Oi")

Page 31: IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual:

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.

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).

>>> var = input("Digite um numero: ")

Page 32: IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual:

Entrada e Saída de Dados:: Exemplo

Digite um numero: 1

15 2

var = 153

>>> var = input("Digite um numero: ")>>> print("Voce digitou", var)

Voce digitou 154

1 2 34

Page 33: IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual:

Entrada de Dados

pelo Usuário

• Dinâmico: o script pode ser usado para diversas instâncias do problema

pelo Script

• Estático: o script tem de ser modificado para cada instância do problema

cat1 = int(input("Digite o valor do cateto: "))

cat1 = 3

Page 34: IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual:

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.

Page 35: IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual:

Problema 1:: Definir Entradas e Saídas

Grandeza Unidade de medida Faixa de valores

Entradas

Saídas

Grandeza Unidade de medida Faixa de valores

Entradas

Nº de bilhetes A bilhetes ≥ 0

Nº de bilhetes B bilhetes ≥ 0

Nº de bilhetes C bilhetes ≥ 0

Saídas Renda R$ ≥ 0

Page 36: IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual:

Problema 1:: Solução

início

nAnBnC

fim

renda

precoA ← 50precoB ← 30precoC ← 20

renda ← precoA * nA+ precoB * nB+ precoC * nC

Page 37: IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual:

Problema 1:: Converter o algoritmo em programa

início

nAnBnC

fim

renda

precoA ← 50precoB ← 30precoC ← 20

renda ← precoA * nA+ precoB * nB+ precoC * nC

nA = input("No. bilhetes A: ")nB = input("No. bilhetes B: ")nC = input("No. bilhetes C: ")

precoA = 50.0precoB = 30.0precoC = 20.0

renda = precoA * nA + precoB * nB + precoC * nC

print(renda)

Page 38: IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual:

Problema 1:: Testando o programa

nA = input("No. bilhetes A: ")nB = input("No. bilhetes B: ")nC = input("No. bilhetes C: ")

precoA = 50.0precoB = 30.0precoC = 20.0

renda = precoA * nA + precoB * nB + precoC * nC

print(renda)

Por que não funciona?

?p0xx_bilhetes.py

Page 39: IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual:

Conteúdo

Variáveis

Tipos de variáveis

Entrada e saída de dados

Boas práticas de programação

Erros

Page 40: IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual:

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:

# Calculo da area do retangulo:area = b * h

# Multiplicacao de b por h:area = b * h

Page 41: IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual:

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#-------------------------------------------

Page 42: IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual:

Boas práticas de programação:: Identificadores (1/2)

Sempre use nomes descritivos e fáceis de lembrar para suas variáveis:

Use sempre letras minúsculas em nomes de variáveis:

x = 1.3 raio = 2.2

raio = 1.3Raio = 4.6RAIO = 7.9

raio_interno = 1.3raio_meio = 4.6raio_externo = 7.9

Page 43: IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual:

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

Page 44: IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual:

Boas práticas de programação:: Nome dos arquivos

Não use espaço e nem acentos no nome dos arquivos de script.

caixa_eletronico.py

caixa eletrônico.py

caixaEletronico.py

Page 45: IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual:

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

Page 46: IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual:

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 = 0.8 # nivel de combustivel (m)altura = 2.3 # altura do tanque (m)raio = 1.5 # raio da secao vertical (m)volume = 0 # volume de combustivel (m3)

Page 47: IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual:

Conteúdo

Variáveis

Tipos de variáveis

Entrada e saída de dados

Boas práticas de programação

Erros

Page 48: IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual:

Erros

Lidar com erros faz parte do desenvolvimento de programas. Erros de sintaxe Erros de execução

Page 49: IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual:

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.

??

¤¥₪

Page 50: IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual:

Erros de sintaxe

x1 = 3.14Instrução correta.

Print(x1)Letra “P” maiúscula no lugar de “p” minúsculo.

x 1 = 3.14Uso errôneo de espaço no nome da variável (entre x e 1).

x1 = 3. 14Uso 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.

Page 51: IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual:

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.

Page 52: IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual:

Erros de execução

x1 = 3.14x2 = 0

Instruções corretas, que definem as variáveis x1 e x2, usadas nas instruções seguintes.

print(x1 / x2)Um erro de execução é causado por uma divisão por zero.

print(X2)

Um erro de execução é causado porque nenhuma variável X2 (inicial maiúscula) foi definida previamente.

Page 53: IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual:

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 problem-solving approach. John Wiley & Sons, 2012.

Page 54: IEC037 Introdução à Programação de Computadores Aula 08 – Variáveis em Python Turma: Professor: Sala: E-mail: Página: Ambiente virtual:

Dúvidas?