Você está na página 1de 76

Operadores, variáveis e E/S (Entrada e Saída)

Aula 2

3/137
Operações

• Em Python as quatro operações aritméticas são denotadas pelos


símbolos convencionais listados abaixo.
• Adição: +

• Subtração: -

• Multiplicação: *

• Divisão: /

• Divisão inteira: //
• Resto da divisão: %. Ex.:
– 10 % 3 = 1
– 7 % 3 = 1
– 11 % 3 = 2

• Potenciação: **

4/137
Interpretador Python como calculadora

• Por ser tão simples, alguns usam o interpretador como uma


calculadora
>>> 10

5/137
Interpretador Python como calculadora

• Por ser tão simples, alguns usam o interpretador como uma


calculadora
>>> 10
10

5/137
Interpretador Python como calculadora

• Por ser tão simples, alguns usam o interpretador como uma


calculadora
>>> 10
10
>>> # Um comentário é precedido de ’#’
>>> # Comentários são ignorados pelo interpretador
>>> 10+5

5/137
Interpretador Python como calculadora

• Por ser tão simples, alguns usam o interpretador como uma


calculadora
>>> 10
10
>>> # Um comentário é precedido de ’#’
>>> # Comentários são ignorados pelo interpretador
>>> 10+5
15

5/137
Interpretador Python como calculadora

• Por ser tão simples, alguns usam o interpretador como uma


calculadora
>>> 10
10
>>> # Um comentário é precedido de ’#’
>>> # Comentários são ignorados pelo interpretador
>>> 10+5
15
>>> 10-15 # Comentários podem aparecer após o código

5/137
Interpretador Python como calculadora

• Por ser tão simples, alguns usam o interpretador como uma


calculadora
>>> 10
10
>>> # Um comentário é precedido de ’#’
>>> # Comentários são ignorados pelo interpretador
>>> 10+5
15
>>> 10-15 # Comentários podem aparecer após o código
-5

5/137
Interpretador Python como calculadora

• Por ser tão simples, alguns usam o interpretador como uma


calculadora
>>> 10
10
>>> # Um comentário é precedido de ’#’
>>> # Comentários são ignorados pelo interpretador
>>> 10+5
15
>>> 10-15 # Comentários podem aparecer após o código
-5
>>> 10 * 3

5/137
Interpretador Python como calculadora

• Por ser tão simples, alguns usam o interpretador como uma


calculadora
>>> 10
10
>>> # Um comentário é precedido de ’#’
>>> # Comentários são ignorados pelo interpretador
>>> 10+5
15
>>> 10-15 # Comentários podem aparecer após o código
-5
>>> 10 * 3
30

5/137
Interpretador Python como calculadora

• Por ser tão simples, alguns usam o interpretador como uma


calculadora
>>> 10
10
>>> # Um comentário é precedido de ’#’
>>> # Comentários são ignorados pelo interpretador
>>> 10+5
15
>>> 10-15 # Comentários podem aparecer após o código
-5
>>> 10 * 3
30
>>> 10 // 3 # Divisão inteira retorna o piso

5/137
Interpretador Python como calculadora

• Por ser tão simples, alguns usam o interpretador como uma


calculadora
>>> 10
10
>>> # Um comentário é precedido de ’#’
>>> # Comentários são ignorados pelo interpretador
>>> 10+5
15
>>> 10-15 # Comentários podem aparecer após o código
-5
>>> 10 * 3
30
>>> 10 // 3 # Divisão inteira retorna o piso
3

5/137
Interpretador Python como calculadora

• Por ser tão simples, alguns usam o interpretador como uma


calculadora
>>> 10
10
>>> # Um comentário é precedido de ’#’
>>> # Comentários são ignorados pelo interpretador
>>> 10+5
15
>>> 10-15 # Comentários podem aparecer após o código
-5
>>> 10 * 3
30
>>> 10 // 3 # Divisão inteira retorna o piso
3
>>> -10 // 3

5/137
Interpretador Python como calculadora

• Por ser tão simples, alguns usam o interpretador como uma


calculadora
>>> 10
10
>>> # Um comentário é precedido de ’#’
>>> # Comentários são ignorados pelo interpretador
>>> 10+5
15
>>> 10-15 # Comentários podem aparecer após o código
-5
>>> 10 * 3
30
>>> 10 // 3 # Divisão inteira retorna o piso
3
>>> -10 // 3
-4
>>> 10 / 3

5/137
Interpretador Python como calculadora

• Por ser tão simples, alguns usam o interpretador como uma


calculadora
>>> 10
10
>>> # Um comentário é precedido de ’#’
>>> # Comentários são ignorados pelo interpretador
>>> 10+5
15
>>> 10-15 # Comentários podem aparecer após o código
-5
>>> 10 * 3
30
>>> 10 // 3 # Divisão inteira retorna o piso
3
>>> -10 // 3
-4
>>> 10 / 3
>>> 3.3333333333333335

5/137
Atalhos dos operadores

• Existem alguns atalhos para diminuir a escrita de código.


• Por exemplo, se quiser escrever soma = soma + x, pode-se usar o
atalho: soma += x:
>>> x = 10
>>> soma = 5
>>> soma += x

6/137
Atalhos dos operadores

• Existem alguns atalhos para diminuir a escrita de código.


• Por exemplo, se quiser escrever soma = soma + x, pode-se usar o
atalho: soma += x:
>>> x = 10
>>> soma = 5
>>> soma += x
>>> soma

6/137
Atalhos dos operadores

• Existem alguns atalhos para diminuir a escrita de código.


• Por exemplo, se quiser escrever soma = soma + x, pode-se usar o
atalho: soma += x:
>>> x = 10
>>> soma = 5
>>> soma += x
>>> soma
15

6/137
Atalhos dos operadores

• Existem alguns atalhos para diminuir a escrita de código.


• Por exemplo, se quiser escrever soma = soma + x, pode-se usar o
atalho: soma += x:
>>> x = 10
>>> soma = 5
>>> soma += x
>>> soma
15

• Os atalhos existem para os demais operadores aritméticos: -=, *=,


/=, //=, %= e **=

6/137
Atalhos dos operadores

• Existem alguns atalhos para diminuir a escrita de código.


• Por exemplo, se quiser escrever soma = soma + x, pode-se usar o
atalho: soma += x:
>>> x = 10
>>> soma = 5
>>> soma += x
>>> soma
15

• Os atalhos existem para os demais operadores aritméticos: -=, *=,


/=, //=, %= e **=
• Exemplo:
>>> x = 10
>>> x **= 2

6/137
Atalhos dos operadores

• Existem alguns atalhos para diminuir a escrita de código.


• Por exemplo, se quiser escrever soma = soma + x, pode-se usar o
atalho: soma += x:
>>> x = 10
>>> soma = 5
>>> soma += x
>>> soma
15

• Os atalhos existem para os demais operadores aritméticos: -=, *=,


/=, //=, %= e **=
• Exemplo:
>>> x = 10
>>> x **= 2
>>> x

6/137
Atalhos dos operadores

• Existem alguns atalhos para diminuir a escrita de código.


• Por exemplo, se quiser escrever soma = soma + x, pode-se usar o
atalho: soma += x:
>>> x = 10
>>> soma = 5
>>> soma += x
>>> soma
15

• Os atalhos existem para os demais operadores aritméticos: -=, *=,


/=, //=, %= e **=
• Exemplo:
>>> x = 10
>>> x **= 2
>>> x
100

6/137
Operadores aritméticos
Algumas observações

• A precedência dos operadores aritméticos é a usual


• Divisão por zero resulta em um erro de execução, interrompendo a
execução do programa. Isso também vale para o resto da divisão por
zero (%)
• As operações com inteiros resultando em números não inteiros são
truncadas, ou seja, arredondadas para baixo
• Pode-se agrupar operações com parênteses recursivamente (não há
colchetes ou chaves)
– ((a+b)*(a+c)) * 3

7/137
Tipos de dados
• int: números inteiros de precisão fixa de limite não definido. Ex.:
2**4096 é um inteiro válido com 1234 dígitos!
• float: números de precisão variável (usualmente implementados
similarmente ao tipo double de C)
– Para consultar mais informações sobre este tipo, execute os
comandos:
>>> import sys
>>> sys.float_info
sys.float_info(max=1.7976931348623157e+308, max_exp=1024,
max_10_exp=308, min=2.2250738585072014e-308, min_exp=-1021,
min_10_exp=-307, dig=15, mant_dig=53,
epsilon=2.220446049250313e-16, radix=2, rounds=1)
– Onde max e min são os números máximo e mínimo do tipo.
– Ex.: 1.0, 10.5, -1900.0005, 15e-5 (15 × 10−5)
• string: são cadeias de caracteres, ou seja, textos
– Ex.: ’abcd’, "Uma frase.", "x"
– Veremos mais sobre strings posteriormente
8/137
Conversão de tipos
• É possível converter um valor do tipo de texto para inteiro ou ponto
flutuante, assim como é possível converter de ponto flutuante para
inteiro etc.
• Funções de conversão
– Qualquer valor para inteiro: int.

9/137
Conversão de tipos
• É possível converter um valor do tipo de texto para inteiro ou ponto
flutuante, assim como é possível converter de ponto flutuante para
inteiro etc.
• Funções de conversão
– Qualquer valor para inteiro: int. Ex.: int(x) (converte x para inteiro)

9/137
Conversão de tipos
• É possível converter um valor do tipo de texto para inteiro ou ponto
flutuante, assim como é possível converter de ponto flutuante para
inteiro etc.
• Funções de conversão
– Qualquer valor para inteiro: int. Ex.: int(x) (converte x para inteiro)
– Qualquer valor para ponto flutuante: float.

9/137
Conversão de tipos
• É possível converter um valor do tipo de texto para inteiro ou ponto
flutuante, assim como é possível converter de ponto flutuante para
inteiro etc.
• Funções de conversão
– Qualquer valor para inteiro: int. Ex.: int(x) (converte x para inteiro)
– Qualquer valor para ponto flutuante: float. Ex.: float(x) (converte x
para ponto flutuante)

9/137
Conversão de tipos
• É possível converter um valor do tipo de texto para inteiro ou ponto
flutuante, assim como é possível converter de ponto flutuante para
inteiro etc.
• Funções de conversão
– Qualquer valor para inteiro: int. Ex.: int(x) (converte x para inteiro)
– Qualquer valor para ponto flutuante: float. Ex.: float(x) (converte x
para ponto flutuante)
– Qualquer valor para string: str.

9/137
Conversão de tipos
• É possível converter um valor do tipo de texto para inteiro ou ponto
flutuante, assim como é possível converter de ponto flutuante para
inteiro etc.
• Funções de conversão
– Qualquer valor para inteiro: int. Ex.: int(x) (converte x para inteiro)
– Qualquer valor para ponto flutuante: float. Ex.: float(x) (converte x
para ponto flutuante)
– Qualquer valor para string: str. Ex.: str(x) (converte x para string)

9/137
Conversão de tipos
• É possível converter um valor do tipo de texto para inteiro ou ponto
flutuante, assim como é possível converter de ponto flutuante para
inteiro etc.
• Funções de conversão
– Qualquer valor para inteiro: int. Ex.: int(x) (converte x para inteiro)
– Qualquer valor para ponto flutuante: float. Ex.: float(x) (converte x
para ponto flutuante)
– Qualquer valor para string: str. Ex.: str(x) (converte x para string)
• Em alguns casos não possível converter para o tipo de dados. O
programa para a execução. Ex.: int(2,3) (tupla)
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
int(2,3)
TypeError: int() can’t convert non-string with explicit base

9/137
Conversão de tipos
• É possível converter um valor do tipo de texto para inteiro ou ponto
flutuante, assim como é possível converter de ponto flutuante para
inteiro etc.
• Funções de conversão
– Qualquer valor para inteiro: int. Ex.: int(x) (converte x para inteiro)
– Qualquer valor para ponto flutuante: float. Ex.: float(x) (converte x
para ponto flutuante)
– Qualquer valor para string: str. Ex.: str(x) (converte x para string)
• Em alguns casos não possível converter para o tipo de dados. O
programa para a execução. Ex.: int(2,3) (tupla)
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
int(2,3)
TypeError: int() can’t convert non-string with explicit base

• A função eval converte o valor informado pelo usuário para o tipo de


dados conveniente. Ex.: eval("1") é equivalente a int("1")
9/137
Variáveis

• São nomes dados a áreas de memória


– Nomes podem ser compostos de algarismos, letras ou sublinhando (_)
– O primeiro caractere não pode ser um algarismo
– Palavras reservadas (print, if, while etc) não podem ser usadas
como nome
• Exemplos de nomes:
– salario – correto
– aluno01 – correto
– 1ano – incorreto
– _x – correto
– nota!01 – incorreto
– nota 01 – incorreto

10/137
Expressões Booleanas

• Também chamadas de expressões lógicas

• Resultado em verdadeiro (True) ou falso (False)


• São usadas principalmente como condição de comandos
condicionais e de repetição
• Operadores mais usados:
– Relacionais: >, <, ==, !=, >=, <=
– Booleanos: and, or, not
• As contantes True e False são apenas símbolos convenientes. O tipo
Booleano é um subtipo do tipo inteiro, portanto 0 é equivalente a
False e qualquer número diferente de 0 é equivalente a True

• A precedência dos operadores segue a usual: operadores


relacionais são avaliados antes da negação (not), que é avaliado
antes de and, que é avaliado antes de or

11/137
Exemplos de expressões Booleanas

>>> 1==1

12/137
Exemplos de expressões Booleanas

>>> 1==1
True

12/137
Exemplos de expressões Booleanas

>>> 1==1
True
>>> 1==2

12/137
Exemplos de expressões Booleanas

>>> 1==1
True
>>> 1==2
False

12/137
Exemplos de expressões Booleanas

>>> 1==1
True
>>> 1==2
False
>>> 1==1 or 1==2

12/137
Exemplos de expressões Booleanas

>>> 1==1
True
>>> 1==2
False
>>> 1==1 or 1==2
True

12/137
Exemplos de expressões Booleanas

>>> 1==1
True
>>> 1==2
False
>>> 1==1 or 1==2
True
>>> 1==1 and 1==2

12/137
Exemplos de expressões Booleanas

>>> 1==1
True
>>> 1==2
False
>>> 1==1 or 1==2
True
>>> 1==1 and 1==2
False

12/137
Exemplos de expressões Booleanas

>>> 1==1
True
>>> 1==2
False
>>> 1==1 or 1==2
True
>>> 1==1 and 1==2
False
>>> 1<2 and 2<3

12/137
Exemplos de expressões Booleanas

>>> 1==1
True
>>> 1==2
False
>>> 1==1 or 1==2
True
>>> 1==1 and 1==2
False
>>> 1<2 and 2<3
True

12/137
Exemplos de expressões Booleanas

>>> 1==1
True
>>> 1==2
False
>>> 1==1 or 1==2
True
>>> 1==1 and 1==2
False
>>> 1<2 and 2<3
True
>>> not 1<2

12/137
Exemplos de expressões Booleanas

>>> 1==1
True
>>> 1==2
False
>>> 1==1 or 1==2
True
>>> 1==1 and 1==2
False
>>> 1<2 and 2<3
True
>>> not 1<2
False

12/137
Exemplos de expressões Booleanas

>>> 1==1
True
>>> 1==2
False
>>> 1==1 or 1==2
True
>>> 1==1 and 1==2
False
>>> 1<2 and 2<3
True
>>> not 1<2
False
>>> not (1<2 or 2<3)

12/137
Exemplos de expressões Booleanas

>>> 1==1
True
>>> 1==2
False
>>> 1==1 or 1==2
True
>>> 1==1 and 1==2
False
>>> 1<2 and 2<3
True
>>> not 1<2
False
>>> not (1<2 or 2<3)
False

12/137
Exemplos de expressões Booleanas

>>> 1==1
True
>>> 1==2
False
>>> 1==1 or 1==2
True
>>> 1==1 and 1==2
False
>>> 1<2 and 2<3
True
>>> not 1<2
False
>>> not (1<2 or 2<3)
False
>>> (not 1<2) or 2<3

12/137
Exemplos de expressões Booleanas

>>> 1==1
True
>>> 1==2
False
>>> 1==1 or 1==2
True
>>> 1==1 and 1==2
False
>>> 1<2 and 2<3
True
>>> not 1<2
False
>>> not (1<2 or 2<3)
False
>>> (not 1<2) or 2<3
True

12/137
Exemplos de expressões Booleanas

>>> 1==1
True
>>> 1==2
False
>>> 1==1 or 1==2
True
>>> 1==1 and 1==2
False
>>> 1<2 and 2<3
True
>>> not 1<2
False
>>> not (1<2 or 2<3)
False
>>> (not 1<2) or 2<3
True
>>> not 1<2 or 2<3

12/137
Exemplos de expressões Booleanas

>>> 1==1
True
>>> 1==2
False
>>> 1==1 or 1==2
True
>>> 1==1 and 1==2
False
>>> 1<2 and 2<3
True
>>> not 1<2
False
>>> not (1<2 or 2<3)
False
>>> (not 1<2) or 2<3
True
>>> not 1<2 or 2<3
True

12/137
Atribuição

• Uma variável é definida ou modificada usando o comando de


atribuição:
<var> = <expressão>
• Variáveis são criadas dinamicamente, não precisa declarar o tipo
• O tipo de uma variável é definido na atribuição. Ex.: para definir uma
variável a do tipo int com valor 3, é suficiente o comando
>>> a=3
• É possível também atribuir a várias variáveis simultaneamente:
var1,var2,...,varN=expr1,expr2,...,exprN
• Exemplos
– nota_maxima = 10.0 (nota_maxima recebe 10.0)
– c = a (c recebe o valor de a)
– b = c + 2 * a (o valor da expressão c+2*a é calculado e atribuído a
b)

13/137
Alguns exemplos

>>> a = 1
>>> a

14/137
Alguns exemplos

>>> a = 1
>>> a
1

14/137
Alguns exemplos

>>> a = 1
>>> a
1
>>> a=2*a
>>> a

14/137
Alguns exemplos

>>> a = 1
>>> a
1
>>> a=2*a
>>> a
2

14/137
Alguns exemplos

>>> a = 1
>>> a
1
>>> a=2*a
>>> a
2
>>> a,b = 3*a,a
>>> a,b

14/137
Alguns exemplos

>>> a = 1
>>> a
1
>>> a=2*a
>>> a
2
>>> a,b = 3*a,a
>>> a,b
(6, 2)

14/137
Alguns exemplos

>>> a = 1
>>> a
1
>>> a=2*a
>>> a
2
>>> a,b = 3*a,a
>>> a,b
(6, 2)
>>> a,b=b,a
>>> a,b

14/137
Alguns exemplos

>>> a = 1
>>> a
1
>>> a=2*a
>>> a
2
>>> a,b = 3*a,a
>>> a,b
(6, 2)
>>> a,b=b,a
>>> a,b
(2, 6)

14/137
Comandos de entrada e saída

• Escrever na tela (e em arquivos): print

• Ler informações do usuário: input

15/137
Saída
• Forma geral: print (expr1, expr2, ...)
• Os valores das expressões são escritos um após o outro sem pular
de linha:
>>> print ("1.001 ao quadrado é", 1.001 ** 2)

16/137
Saída
• Forma geral: print (expr1, expr2, ...)
• Os valores das expressões são escritos um após o outro sem pular
de linha:
>>> print ("1.001 ao quadrado é", 1.001 ** 2)
1.001 ao quadrado é 1.0020009999999997

16/137
Saída
• Forma geral: print (expr1, expr2, ...)
• Os valores das expressões são escritos um após o outro sem pular
de linha:
>>> print ("1.001 ao quadrado é", 1.001 ** 2)
1.001 ao quadrado é 1.0020009999999997

• Outro exemplo:
>>> aluno = 1234

16/137
Saída
• Forma geral: print (expr1, expr2, ...)
• Os valores das expressões são escritos um após o outro sem pular
de linha:
>>> print ("1.001 ao quadrado é", 1.001 ** 2)
1.001 ao quadrado é 1.0020009999999997

• Outro exemplo:
>>> aluno = 1234
>>> nota = 8.5

16/137
Saída
• Forma geral: print (expr1, expr2, ...)
• Os valores das expressões são escritos um após o outro sem pular
de linha:
>>> print ("1.001 ao quadrado é", 1.001 ** 2)
1.001 ao quadrado é 1.0020009999999997

• Outro exemplo:
>>> aluno = 1234
>>> nota = 8.5
>>> print ("A nota do aluno", aluno, "é", nota)

16/137
Saída
• Forma geral: print (expr1, expr2, ...)
• Os valores das expressões são escritos um após o outro sem pular
de linha:
>>> print ("1.001 ao quadrado é", 1.001 ** 2)
1.001 ao quadrado é 1.0020009999999997

• Outro exemplo:
>>> aluno = 1234
>>> nota = 8.5
>>> print ("A nota do aluno", aluno, "é", nota)
A nota do aluno 1234 é 8.5

16/137
Saída
• Forma geral: print (expr1, expr2, ...)
• Os valores das expressões são escritos um após o outro sem pular
de linha:
>>> print ("1.001 ao quadrado é", 1.001 ** 2)
1.001 ao quadrado é 1.0020009999999997

• Outro exemplo:
>>> aluno = 1234
>>> nota = 8.5
>>> print ("A nota do aluno", aluno, "é", nota)
A nota do aluno 1234 é 8.5

• Atenção: houve uma mudança em relação à sintaxe do print e


outros comandos da versão 2 para a 3.
– No curso usaremos a sintaxe da versão 3.
– Mais informações em:
https://docs.python.org/3.0/whatsnew/3.0.html

16/137
Entrada

• O comando input permite perguntar ao usuário um valor


(normalmente atribuído a uma variável)
• Formato: input("Pergunta")
• Onde "Pergunta" é uma string opcional que será exibida para indicar
o valor que se espera.
• Exemplo:
>>> a = eval(input("Entre com um número: "))
Entre com um número:

17/137
Entrada

• O comando input permite perguntar ao usuário um valor


(normalmente atribuído a uma variável)
• Formato: input("Pergunta")
• Onde "Pergunta" é uma string opcional que será exibida para indicar
o valor que se espera.
• Exemplo:
>>> a = eval(input("Entre com um número: "))
Entre com um número: 19

17/137
Entrada

• O comando input permite perguntar ao usuário um valor


(normalmente atribuído a uma variável)
• Formato: input("Pergunta")
• Onde "Pergunta" é uma string opcional que será exibida para indicar
o valor que se espera.
• Exemplo:
>>> a = eval(input("Entre com um número: "))
Entre com um número: 19
>>> print(a)

17/137
Entrada

• O comando input permite perguntar ao usuário um valor


(normalmente atribuído a uma variável)
• Formato: input("Pergunta")
• Onde "Pergunta" é uma string opcional que será exibida para indicar
o valor que se espera.
• Exemplo:
>>> a = eval(input("Entre com um número: "))
Entre com um número: 19
>>> print(a)
19

17/137
Entrada

• O comando input permite perguntar ao usuário um valor


(normalmente atribuído a uma variável)
• Formato: input("Pergunta")
• Onde "Pergunta" é uma string opcional que será exibida para indicar
o valor que se espera.
• Exemplo:
>>> a = eval(input("Entre com um número: "))
Entre com um número: 19
>>> print(a)
19

• Atenção: houve uma mudança em relação ao comportamento do


input da versão 2 para a 3. Na versão 3 input sempre retorna uma
string.

17/137
Exercícios
input e print

1. Faça um programa que leia um número da entrada e imprima o seu


antecedente e o seu sucessor
2. Faça um programa que leia um valor de conta de restaurante,
representando o gasto realizado pelo cliente e imprima o valor total a
ser pago, considerando que o restaurante cobra 10% para o garçon.
3. Faça um programa que leia um valor de hora corrente (hora e
minutos) e informe quantos minutos se passaram desde o início do
dia.
4. Escreva um programa para determinar o consumo médio de um
automóvel sendo fornecida a distância total percorrida pelo
automóvel e o total de combustível gasto.

22/137
Exercícios
input e print

5. Escreva um programa que leia o nome de um vendedor, o seu salário


fixo e o total das vendas efetuadas por ele no mês (em dinheiro).
Sabendo que este vendedor ganha 15% de comissão sobre suas
vendas efetuadas, informar o seu nome, o salário fixo e o salário final
no mês.

24/137

Você também pode gostar