SENAI Goiás — Análise e Desenvolvimento de Sistemas
1ª Verificação de Aprendizagem (VA) — Parte Teórica
Considere a classe a seguir:
class Ponto:
def __init__(self, x, y):
self.x = x
self.y = y
def __str__(self):
return f"({self.x}, {self.y})"
p = Ponto(2, 5)
print(p)
print(f"Ponto em {p}") Assinale a alternativa correta sobre a saída do programa.
Analise o programa em Python a seguir:
def add(item, lista=[]):
lista.append(item)
return lista
print(add(1))
print(add(2)) Assinale a alternativa que apresenta, na ordem, a saída produzida pelo programa.
Considere o código em Python:
from abc import ABC, abstractmethod
class Pagamento(ABC):
@abstractmethod
def processar(self, valor): ...
class Pix(Pagamento):
def processar(self, valor):
return f"Pix de R$ {valor}" Avalie as asserções a seguir e a relação entre elas.
I. É possível criar objetos da classe Pix, mas não é possível instanciar Pagamento diretamente.
PORQUE
II. Pagamento é uma classe abstrata e Pix implementa o método abstrato processar(), tornando-se uma classe concreta.
A respeito dessas asserções, assinale a opção correta.
Considere a classe a seguir, que controla a temperatura de um ambiente:
class Termostato:
def __init__(self):
self._temp = 20
@property
def temp(self):
return self._temp
@temp.setter
def temp(self, valor):
if valor < 10 or valor > 30:
raise ValueError("Fora da faixa")
self._temp = valor
t = Termostato()
t.temp = 25
print(t.temp)
t.temp = 40
print("fim") Sobre a execução do programa, assinale a alternativa correta.
Considere o programa:
def dividir(a, b):
return a / b
try:
r = dividir(10, 0)
except ZeroDivisionError:
print("erro")
else:
print("ok")
finally:
print("fim") Com base na semântica dos blocos try/except/else/finally, assinale a alternativa que apresenta, na ordem, a saída do programa.
Considere as classes a seguir:
class Animal:
def __init__(self, nome):
self.nome = nome
def falar(self):
return "..."
class Cao(Animal):
def falar(self):
return "Au"
c = Cao("Rex")
print(c.nome, c.falar()) Assinale a alternativa correta.
Considere a classe a seguir:
class Avaliacao:
def __init__(self):
self._nota = 0
@property
def nota(self):
return self._nota
@nota.setter
def nota(self, valor):
self._nota = max(0, min(10, valor))
a = Avaliacao()
a.nota = 15
print(a.nota)
a.nota = -3
print(a.nota) Assinale a alternativa que apresenta, na ordem, a saída do programa.
Considere o código em Python:
class SaldoInsuficienteError(Exception):
def __init__(self, saldo, valor):
self.falta = valor - saldo
super().__init__(f"Faltam R$ {self.falta:.2f}")
def sacar(saldo, valor):
if valor > saldo:
raise SaldoInsuficienteError(saldo, valor)
return saldo - valor
try:
sacar(100, 150)
except SaldoInsuficienteError as e:
print("Erro:", e)
print("Falta:", e.falta) Assinale a alternativa que apresenta, na ordem, a saída do programa.
Considere o trecho a seguir:
try:
x = [1, 2, 3][10]
except LookupError:
print("capturado") Sabendo que IndexError é uma subclasse de LookupError, assinale a alternativa correta sobre o que o programa faz.
Considere o código a seguir:
class Pato:
def som(self):
return "Quack"
class Cao:
def som(self):
return "Au"
def coro(bichos):
return [b.som() for b in bichos]
print(coro([Pato(), Cao()])) Considerando o conceito de polimorfismo por duck typing, assinale a alternativa correta.