Escolar Documentos
Profissional Documentos
Cultura Documentos
Revisão
Suzana de Siqueira Santos
CMCC, UFABC
Q1 2024
Parte do material é baseado nos slides dos professores Jesús P. Mena-Chalco, Francisco Zampirolli e Carla Negri
Tipos de dados,
operadores e
variáveis
Tipos de dados
3
Tipos de dados
Inteiros (int): números inteiros, como 3,
100, 1, etc
3
Tipos de dados
Inteiros (int): números inteiros, como 3,
100, 1, etc
Números de ponto flutuante (float):
números com casas decimais, como 3.5,
4.33, 100.0, etc
3
Tipos de dados
Inteiros (int): números inteiros, como 3,
100, 1, etc
Números de ponto flutuante (float):
números com casas decimais, como 3.5,
4.33, 100.0, etc
String (str): sequência de caracteres, como
”olá”, ’hello’, ”100”, etc
3
Tipos de dados
Inteiros (int): números inteiros, como 3,
100, 1, etc
Números de ponto flutuante (float):
números com casas decimais, como 3.5,
4.33, 100.0, etc
String (str): sequência de caracteres, como
”olá”, ’hello’, ”100”, etc
Listas (list): sequência de objetos, como [1,
2, 6], [3, ”ola”, 4], etc
3
Tipos de dados
Inteiros (int): números inteiros, como 3,
100, 1, etc
Números de ponto flutuante (float):
números com casas decimais, como 3.5,
4.33, 100.0, etc
String (str): sequência de caracteres, como
”olá”, ’hello’, ”100”, etc
Listas (list): sequência de objetos, como [1,
2, 6], [3, ”ola”, 4], etc
booleanos (bool): valor lógico que vale True
(verdadeiro) ou False (falso)
3
Precedência dos operadores
Operador Operação
** Exponenciação
- Negação
* Multiplicação
/ Divisão
// Divisão inteira
% Módulo (resto da divisão)
+ Soma
- Subtração
= Atribuição
4
Precedência dos operadores
−2 ∗ ∗4 + 1
5
Precedência dos operadores
−2 ∗ ∗4 + 1
-15
5
Expressões
6
Expressões
7 + 1/(14-1/9)
6
Variáveis
Uma variável permite guardar um valor na memória
para acessá-lo depois.
7
Variáveis
Uma variável permite guardar um valor na memória
para acessá-lo depois.
1 x = int ( input () )
2 x = x + 2
3 print ( x )
7
Variáveis
Uma variável permite guardar um valor na memória
para acessá-lo depois.
1 x = int ( input () )
2 x = x + 2
3 print ( x )
>3
5
7
Variáveis
Uma variável permite guardar um valor na memória
para acessá-lo depois.
1 x = int ( input () )
2 x = x + 2
3 print ( x )
>3
5
O operador ”=” serve para fazer a atribuição. O nome
da variável sempre deve estar do lado esquerdo do
operador. Tudo que está do lado direito vai ser
avaliado e o resultado vai ser armazenado na variável
7
Variáveis - exemplo
8
Variáveis - exemplo
> a = 1 + 3 + 16/4
> print(a)
8
8
Variáveis - exemplo
> a = 1 + 3 + 16/4
> print(a)
8
> 1 + 3 + 16/4 = a
> print(a)
SyntaxError: cannot assign to expression here. Maybe
you meant ’==’ instead of ’=’?
8
Operadores de atribuição
compostos
9
Operadores de atribuição
compostos
X += 1 → X = X+1
9
Operadores de atribuição
compostos
X += 1 → X = X+1
X -= 5 → X = X-5
9
Operadores de atribuição
compostos
X += 1 → X = X+1
X -= 5 → X = X-5
X *= 7 → X = X*7
9
Operadores de atribuição
compostos
X += 1 → X = X+1
X -= 5 → X = X-5
X *= 7 → X = X*7
X /= 87 → X = X/87
9
Variáveis
10
Modularização
Módulo / método / Função
12
Vantagens
Evita repetição de código, facilitando
alterações
Legibilidade
Organização
13
Exemplos de funções
pré-implementadas
print()
input()
abs()
int()
float()
str()
Para nós, essas funções funcionam como
caixa preta: suas estruturas são
desconhecidas, mas sabemos quais são as
entradas e as saídas esperadas.
14
Exemplos de uso de funções
pré-implementadas
1 n = int ( input () )
2 p = abs ( n ) + round ( n /7 , 2)
15
Exemplos de funções da biblioteca
math
16
Chamada de funções
17
Chamada de funções
> x = input
> print(x)
<bound method Kernel.raw_input of <spy-
der_kernels.console.kernel.SpyderKernel object at
0x7f084eb52190»
17
Chamada de funções
> x = input
> print(x)
<bound method Kernel.raw_input of <spy-
der_kernels.console.kernel.SpyderKernel object at
0x7f084eb52190»
> x = input()
> Oi
> print(x)
Oi
17
Chamada de funções
> x = input
> print(x)
<bound method Kernel.raw_input of <spy-
der_kernels.console.kernel.SpyderKernel object at
0x7f084eb52190»
> x = input()
> Oi
> print(x)
Oi
Para fazer a chamada de uma função é preciso abrir
e fechar parênteses. Se a função tiver parâmetros
também é preciso passar argumentos para a função.
A chamada de uma função será avaliada e resultará
em algum valor ou None
17
Passando argumentos/parâmetros
18
Passando argumentos/parâmetros
> abs(2)
2
> abs(-2)
2
> x = -3
> abs(x)
3
>y=4
> abs(1-(y-x))
6
18
Passando argumentos/parâmetros
> abs(2)
2
> abs(-2)
2
> x = -3
> abs(x)
3
>y=4
> abs(1-(y-x))
6
1 def quadruplo ( x) :
2 resposta = 4* x
3 return resposta
19
Criando uma função em python
1 def quadruplo ( x) :
2 resposta = 4* x
3 return resposta
19
Criando uma função em python
1 def quadruplo ( x) :
2 return 4* x
20
Componentes de um módulo
Identificador Parâmetro
Variável
local
} Corpo
Valor devolvido
21
Chamando a função criada
22
Chamando a função criada
> y = quadruplo(3)
> print(y)
12
22
Escopo de uma variável
1 a = 1
2 b = 2
3 def f( a ) :
4 b = 1
5 a = a + b
6 return a
7 def g( b ) :
8 b = b - a
9 return b
10 print ( f ( a ) )
11 print ( g ( b ) )
12 print (a , b )
23
Escopo de uma variável
1 a = 1
2 b = 2
3 def f( a ) :
4 b = 1
5 a = a + b
6 return a
7 def g( b ) :
8 b = b - a
9 return b
10 print ( f ( a ) )
11 print ( g ( b ) )
12 print (a , b )
2
1
12
23
Estruturas de
seleção
Expressões booleanas
25
Operadores relacionais
igual → ==
diferente → !=
Maior → >
Maior ou igual → >=
Menor → <
Menor ou igual → <=
26
ATENÇÃO: não confundir = com ==
27
ATENÇÃO: não confundir = com ==
> 4 == 4
True
> 4 == 5
False
27
ATENÇÃO: não confundir = com ==
> 4 == 4
True
> 4 == 5
False
>4=4
SyntaxError: cannot assign to literal here. Maybe you
meant ’==’ instead of ’=’?
>4=5
SyntaxError: cannot assign to literal here. Maybe you
meant ’==’ instead of ’=’?
27
Operadores lógicos
28
Operadores lógicos
and
28
Operadores lógicos
and
or
28
Operadores lógicos
and
or
not
28
Operadores lógicos
Expressão a b Resultado
29
Operadores lógicos
Expressão a b Resultado
True True True
True False False
a and b
False True False
False False False
29
Operadores lógicos
Expressão a b Resultado
True True True
True False False
a and b
False True False
False False False
True True True
True False True
a or b
False True True
False False False
29
Operadores lógicos
Expressão a b Resultado
True True True
True False False
a and b
False True False
False False False
True True True
True False True
a or b
False True True
False False False
True False
not a
False True
29
Exemplos
30
Exemplos
30
Exemplos
30
Exemplos
30
Exemplos
30
Abreviação quando um dos termos
comparados é o mesmo
31
Abreviação quando um dos termos
comparados é o mesmo
31
Abreviação quando um dos termos
comparados é o mesmo
31
Abreviação quando um dos termos
comparados é o mesmo
31
Abreviação quando um dos termos
comparados é o mesmo
31
Estrutura de seleção
32
Seleção simples
Executado
if (condição):
apenas se
condição for
Bloco de comandos 1 verdadeira
Executado
Bloco de comandos 2
independentemente
do valor de
condição
33
Seleção simples
Executado
if (condição):
apenas se
condição for
Bloco de comandos 1 verdadeira
Executado
Bloco de comandos 2
independentemente
do valor de
condição
Executado
else:
apenas se
condição for
Bloco de comandos 2 falsa
Executado
Bloco de comandos 3
independentemente
do valor de
condição
34
Estruturas de seleção encadeadas
if (condição1):
if (condição 2):
else:
else:
Bloco de comandos 2
Bloco de comandos 3
35
Comando elif
elif é a forma abreviada de else + if.
Executado apenas
se condição1 for
if (condição 1): verdadeira
Executado apenas
elif (condição2):
se condição1 for
falsa e condição2
for verdadeira
elif (condição3):
Executado apenas
se condição1 e
codição2 forem
...
falsas e a condição3
else: for verdadeira
Executado apenas
se todas as condições
anteriores forem falsas
36
Exemplo
Qual a saída quando o parâmetro vale ”B”?
1 def total1 ( c : str ) -> int :
2 t = 4;
3 if c == ” A”:
4 t = t -0
5 if c == ” B”:
6 t = t -1
7 if c == ” C”:
8 t = t -2
9 if c == ” D”:
10 t = t -3
11 else :
12 t = t -4
13 return t
37
Exemplo
Qual a saída quando o parâmetro vale ”B”?
1 def total1 ( c : str ) -> int :
2 t = 4;
3 if c == ” A”:
4 t = t -0
5 if c == ” B”:
6 t = t -1
7 if c == ” C”:
8 t = t -2
9 if c == ” D”:
10 t = t -3
11 else :
12 t = t -4
13 return t
> print(total1(”B”))
-1 37
Exemplo
Qual a saída quando o parâmetro vale ”B”?
1 def total2 ( c : str ) -> int :
2 t = 4;
3 if c == ” A”:
4 t = t -0
5 elif c == ”B”:
6 t = t -1
7 elif c == ”C”:
8 t = t -2
9 elif c == ”D”:
10 t = t -3
11 else :
12 t = t -4
13 return t
38
Exemplo
Qual a saída quando o parâmetro vale ”B”?
1 def total2 ( c : str ) -> int :
2 t = 4;
3 if c == ” A”:
4 t = t -0
5 elif c == ”B”:
6 t = t -1
7 elif c == ”C”:
8 t = t -2
9 elif c == ”D”:
10 t = t -3
11 else :
12 t = t -4
13 return t
> print(total2(”B”))
3 38
Estruturas de
repetição
Estrutura de repetição while
40
Estrutura de repetição while
40
Estrutura de repetição while
40
Padrão de instrução - contador
41
Exemplo - contador
42
Padrão de Instrução - acumulador
43
Exemplo - acumulador
Escreva um algoritmo que lê um valor n e em
seguida lê n valores inteiros e calcula a soma
dos valores.
44
Exemplo - acumulador
Escreva um algoritmo que lê um valor n e em
seguida lê n valores inteiros e calcula a soma
dos valores.
1 n = int ( input () )
2 i = 1
3 soma = 0
4 while i <= n :
5 x = int ( input () )
6 soma = soma + x
7 i = i + 1
8 print ( soma )
44
Exemplo - acumulador
Escreva um algoritmo que lê um valor n e em
seguida lê n valores inteiros e calcula a soma
dos valores.
1 n = int ( input () )
2 i = 1
3 soma = 0
4 while i <= n :
5 x = int ( input () )
6 soma = soma + x
7 i = i + 1
8 print ( soma )
Neste exemplo, utilizamos a variável i como contador
e soma como acululador
44
Laço de repetição for
45
For
46
Função range para gerar sequências
47
Definindo um intervalo
48
Definindo os passos
Podemos usar 3 parâmetros na função
range:
range(5,10,2)
[5, 7, 9]
range(5,10,3)
[5, 8]
range(5,10,4)
[5, 9]
range(5,10,5)
[5]
49
Sequências descrescentes
range(10,1,-1)
[10, 9, 8, 7, 6, 5, 4, 3, 2]
range(10,1,-2)
[10, 8, 6, 4, 2]
range(10,1,-3)
[10, 7, 4]
50
Exemplo
51
Exemplo
51
Exemplo
51
Exemplo
52
Exemplo
52
Laços aninhados
53
Exemplo
O que faz o código abaixo?
1 n = int ( input () )
2 for i in range (1 , n +1) :
3 for j in range (1 , n +1) :
4 print (i , j )
54
Exemplo
O que faz o código abaixo?
1 n = int ( input () )
2 for i in range (1 , n +1) :
3 for j in range (1 , n +1) :
4 print (i , j )
>3
11
12
13
21
22
23
31
32
33 54
Simulado
Questão 1
56
Questão 1
56
Questão 1
57
Questão 1
57
Questão 2
1 def enigmaA ( num : int ) -> int :
2 x = 0
3
4 if num >10:
5 x = 0
6 else :
7 x = 1
8 if num <10:
9 x = 3
10 else :
11 x = 4
12
13 return x
58
Questão 2
1 def enigmaA ( num : int ) -> int :
2 x = 0
3
4 if num >10:
5 x = 0
6 else :
7 x = 1
8 if num <10:
9 x = 3
10 else :
11 x = 4
12
13 return x
> enigmaA(5)
58
Questão 2
1 def enigmaA ( num : int ) -> int :
2 x = 0
3
4 if num >10:
5 x = 0
6 else :
7 x = 1
8 if num <10:
9 x = 3
10 else :
11 x = 4
12
13 return x
> enigmaA(5)
3
59
Questão 2
8 return soma
60
Questão 2
8 return soma
> enigmaB(3, 5)
60
Questão 2
8 return soma
> enigmaB(3, 5)
50
61
Questão 2
4 while i >10:
5 i = i -1
6
7 return i *10
62
Questão 2
4 while i >10:
5 i = i -1
6
7 return i *10
> enigmaC(100)
62
Questão 2
4 while i >10:
5 i = i -1
6
7 return i *10
> enigmaC(100)
100
63
Questão 3
Complete a função triangulo de tal maneira que, para
um número inteiro n, seja impressa uma sequência de
caracteres de ‘*’ e ‘o’ na forma triangular.
Por exemplo, para n igual a 7 a função deverá
imprimir:
*******
******o
*****oo
****ooo
***oooo
**ooooo
*oooooo
64
Questão 3
65
Questão 3 - estratégia
66
Questão 3 - estratégia
i itera nas linhas (começa com 1)
66
Questão 3 - estratégia
i itera nas linhas (começa com 1)
j itera nas colunas (começa com n)
66
Questão 3 - estratégia
i itera nas linhas (começa com 1)
j itera nas colunas (começa com n)
quando i vale 1 só imprime ”*”
66
Questão 3 - estratégia
i itera nas linhas (começa com 1)
j itera nas colunas (começa com n)
quando i vale 1 só imprime ”*”
quando i vale 2:
66
Questão 3 - estratégia
i itera nas linhas (começa com 1)
j itera nas colunas (começa com n)
quando i vale 1 só imprime ”*”
quando i vale 2:
quando j vale de n até 2, imprime ”*”
66
Questão 3 - estratégia
i itera nas linhas (começa com 1)
j itera nas colunas (começa com n)
quando i vale 1 só imprime ”*”
quando i vale 2:
quando j vale de n até 2, imprime ”*”
quando j vale 1 imprime ”o”
66
Questão 3 - estratégia
i itera nas linhas (começa com 1)
j itera nas colunas (começa com n)
quando i vale 1 só imprime ”*”
quando i vale 2:
quando j vale de n até 2, imprime ”*”
quando j vale 1 imprime ”o”
quando i vale 3:
66
Questão 3 - estratégia
i itera nas linhas (começa com 1)
j itera nas colunas (começa com n)
quando i vale 1 só imprime ”*”
quando i vale 2:
quando j vale de n até 2, imprime ”*”
quando j vale 1 imprime ”o”
quando i vale 3:
quando j vale de n até 3, imprime ”*”
66
Questão 3 - estratégia
i itera nas linhas (começa com 1)
j itera nas colunas (começa com n)
quando i vale 1 só imprime ”*”
quando i vale 2:
quando j vale de n até 2, imprime ”*”
quando j vale 1 imprime ”o”
quando i vale 3:
quando j vale de n até 3, imprime ”*”
quando j vale 1 ou 2 imprime ”o”
66
Questão 3 - estratégia
i itera nas linhas (começa com 1)
j itera nas colunas (começa com n)
quando i vale 1 só imprime ”*”
quando i vale 2:
quando j vale de n até 2, imprime ”*”
quando j vale 1 imprime ”o”
quando i vale 3:
quando j vale de n até 3, imprime ”*”
quando j vale 1 ou 2 imprime ”o”
se j < i, imprime ”o”
66
Questão 3 - estratégia
i itera nas linhas (começa com 1)
j itera nas colunas (começa com n)
quando i vale 1 só imprime ”*”
quando i vale 2:
quando j vale de n até 2, imprime ”*”
quando j vale 1 imprime ”o”
quando i vale 3:
quando j vale de n até 3, imprime ”*”
quando j vale 1 ou 2 imprime ”o”
se j < i, imprime ”o”
senão imprime ”*”
66
Questão 3 - solução
67
Questão 4
π2 1 1 1 1 1
= 2 + 2 + 2 + 2 + 2 + ···
8 1 3 5 7 9
68
Questão 4
Complete a função:
1 def novoPI () -> float :
2 soma = 0
3 i = __________
4 while __________________________ :
5 soma = soma + 1/( i*i)
6 i = ________________
7
69
Questão 4
Complete a função:
1 def novoPI () -> float :
2 soma = 0
3 i = 1
4 while 1/( i *i ) >= 0.0001:
5 soma = soma + 1/( i*i)
6 i = i + 2
7 return ( soma *8) **(0.5)
70
Questão 5
Indique o valor que devolverá a seguinte função.
Considere como parâmetro de entrada, para a função,
o seu número de matricula (isto é, seu RA).
1 def enigmaRA ( ra : int ) -> int :
2 i = 1
3 t = 0
4 while i <=8:
5 aux = ra %10
6 ra = ra //10
7 i = i +1
8 if aux >=3:
9 t = t +1
10 return t
71
Questão 5 - solução
72
Sobre a P1
73
Sobre a P1
73