Avaliação Diagnóstica

Esta página contém as soluções das questões da Avaliação Diagnóstica com comentários, bem como algumas indicações de leitura para aqueles que erraram alguma das questões ou que queiram rever o conteúdo.

Questão 1

Será impresso 10, já que inteiros são imutáveis em Python. De fato, a variável x dentro da função adiciona não é a mesma variável global x que é impressa.

Leitura recomendada:

Questão 2

Será impresso [1, 2, 3, 4], já que listas são objetos mutáveis em Python e o método append de fato altera a lista. Apesar de existirem duas variáveis com o mesmo nome lista (uma local e outra global), note que elas referenciam o mesmo objeto.

Leitura recomendada:

Questão 3

Novamente será impresso [1, 2, 3, 4] já que outra_lista e lista referenciam o mesmo objeto.

Leitura recomendada:

Questão 4

Uma possível solução seria:

def seleciona_pares(lista):
  pares = []
  for elemento in lista:
    if elemento % 2 == 0:
      pares.append(elemento)
  return pares

E outra solução mais Pythonesca seria:

def seleciona_pares(lista):
  return [elemento for elemento in lista if elemento % 2 == 0]

Alguns alunos confundiram o operador resto da divisão % com o operador de divisão inteira //.

Leitura recomendada:

Questão 5

Uma possível solução seria:

def fatorial(n):
  if n == 0:
    return 1
  return n * fatorial(n-1)

Note que 0! é igual a 1 e não igual a 0 como o algumas soluções computavam.

Leitura recomendada:

Questão 6

Uma possível solução seria:

def multiplica(a, b):
  if a == 0:
    return 0
  return b + multiplica(a - 1, b)

Leitura recomendada:

Questão 7

Você poderia apresentar algoritmos como BubbleSort, InsertionSort, SelectionSort, MergeSort e Quicksort.

Leitura recomendada: