0% acharam este documento útil (0 voto)
35 visualizações4 páginas

Teste Python

O documento aborda conceitos fundamentais da programação orientada a objetos, incluindo herança, polimorfismo, interfaces e classes abstratas. Também discute a validação de inputs, SQL Injection, o modelo MVC, Unit Testing e apresenta exemplos de funções em Python. Além disso, fornece instruções para a criação de tabelas em um banco de dados e analisa questões lógicas e padrões de desenvolvimento.

Enviado por

samuka.xd.1991
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato DOCX, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
35 visualizações4 páginas

Teste Python

O documento aborda conceitos fundamentais da programação orientada a objetos, incluindo herança, polimorfismo, interfaces e classes abstratas. Também discute a validação de inputs, SQL Injection, o modelo MVC, Unit Testing e apresenta exemplos de funções em Python. Além disso, fornece instruções para a criação de tabelas em um banco de dados e analisa questões lógicas e padrões de desenvolvimento.

Enviado por

samuka.xd.1991
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato DOCX, PDF, TXT ou leia on-line no Scribd

Programação Orientada a Objectos

1. Explique quais os conceitos chave da programação orientada a objectos, mencionando


herança e polimorfismo.

2. Explique o conceito de Interface e Classe Abstracta, mencionando as diferenças entre


as duas.

3. Defina uma classe chamada Vehicle, um método nessa classe chamado GetColor e um
segundo método que chame GetColor.

class Vehicle:
def GetColor():
return ‘Verde’
def Cor():
print(GetColor())

4. Considerando o seguinte código, qual o valor de Res?

Data = ‘Defina uma classe’


Res = Data[ : 6 ]

Res é igual a Defina

5. Qual a utilidade da função lambda? Dê um exemplo.

6. Descreva o conceito de serialização de dados. Que classes existem para a efectuar?

Dados

7. Elabore as tabelas necessárias para guardar numa base de dados informações relativas
a alunos e disciplinas, onde estão inscritos (um aluno tem que ter um nome e data de
nascimento, e uma disciplina tem um nome e um professor).

CREATE TABLE alunos(id INT, nome VARCHAR, data_nascimento VARCHAR);


CREATE TABLE disciplina(id INT, nome VARCHAR, professor VARCHAR);

Web
8. A validação de inputs numa form deve ser efectuada no cliente ou no servidor?
Porquê?

A validação de inputs deve de ser efectuada no cliente, para não sobrecarregar o


servidor.

9. Diga o que entende por SQL Injection possíveis soluções para evitar.

SQL injection é uma vulnerabilidade que existe nas query que fazem operações
nas bases de dados (INSERT,UPDATE,DELETE), através das aplicações que fazem query a base
de dados é possível enviar instruções com (INSERT,UPDATE,DELETE) para alterar a base de
dados ora isto é uma grande vulnerabilidade pois permite a pessoas desconhecidas e
indesejadas fazem operações nas bases de dados quer seja adicionar registo, alterar registo,
apagar registos ou até apagar a base de dados por complete, um método para proteger a base
de dados destas operações é em vez de passar os valores para a base de dados de forma
literal, deve de se usar algo que vá representar esse valor, ou seja passamos os valores por
parâmetro.

10. Descreva o modelo MVC e cada um dos seus componentes (Model, View, Controller).

Sucintamente se MVC o Model é o que representa a estrutura de dados


ex(uma estrutura JSON), a View é o que é utilizado para mostrar esses dados ex(uma página
web, um componente ou o ecrã de uma aplicação) e o Controller é o responsável por fazer as
alterações a esses dados(Inserir, Alterar ou Apagar), também é aqui que se encontram o
métodos complementares..

11. Se conhecer o OpenErp, indique de que forma são passados os dados da Vista para o
Controlador ?

12. Que mecanismos existem para validar os parâmetros passados da Vista para o
Controller?

13. Explique o conceito de Unit Testing e Test Driven Development


Unit Testing e Test Driven Development são testes automáticos desenvolvidos pelos
programadores para detetar possíveis erros de lógica comuns que possam surgir
durante a utilização da aplicação, evitando assim a entrega de programas com
potenciais fragilidades. Sendo estes testes realizados por uma maquina, consegue-se
fazer um número muito maior de teste, em um tempo menor do que se fosse feito
uma uma pessoa.

Algoritmos

14. Elabore uma função que receba 2 inteiros e retorne o resultado da divisão inteira ente
os 2 inteiros recebidos, sem recorrer ao operador da divisão (exemplo: 5/2=2).
from math import metodoDivisaoInteira
def CalculaDivisaoInteira(n1,n2):
return [Link](n1,n2)

15. Elabore uma função para calcular o factorial de um inteiro recebido por parâmetro
(exemplo: 5!=5*4*3*2*1).
def CalcularFatorial(n):
fatorial = 1
for c in range(n,1,-1):
factorial = factorial * c
print(factorial)

Lógica

16. Dizer que “Pedro não é pedreiro ou Paulo é paulista” é, do ponto de vista lógico, o
mesmo que dizer:
a. Se Pedro é pedreiro, então Paulo é paulista; X
b. Se Paulo é paulista, então Pedro é pedreiro;
c. Se Pedro não é pedreiro, então Paulo não é paulista;
d. Se Pedro é pedreiro, então Paulo não é paulista;

17. Se Frederico é francês, então Alberto não é alemão. Ou Alberto é alemão, ou Egídio é
espanhol. Se Pedro não é português, então Frederico é francês. Ora, nem Egídio é
espanhol nem Isaura é italiana. Logo:
a. Pedro é português e Frederico é francês;
b. Pedro é português e Alberto é alemão; X
c. Pedro não é português e Alberto é alemão;
d. Egídio é espanhol ou Frederico é francês;
Código

18. Que padrão de desenvolvimento está presente no seguinte bloco de código?

class Pattern:
__single = None
def __init__ ( self ):
if Pattern.__single:
raise Pattern.__single
Pattern.__single = self

19. Indique se o seguinte bloco de código tem algum erro. Justifique.

def _get_value(self, cr, uid, uids, context=None):

result = {}
result[‘value1’]=1;

return result
19- No bloco de código anterior não existe nenhum erro de sintaxe,
porem se definimos argumentos na definição do método devemos então
utiliza-los

Você também pode gostar