Prévia do material em texto
1. Vamos supor o seguint trecho de código em Phyton, dentro do módulo frete.py >>>import transportes.logistica.frete >>>transportes.logistica.frete.entrega() O que faz o segundo comando acima ( >>>transportes.logistica.frete.entrega() ) ? uso da função de nome entrega Importaçao do módulo Leitura do módulo frete.py O comando está incorreto e não executa Importação da função de nome entrega 2. Como a linguagem PHYTON identifica que trata-se de um pacote ? Não existe uma forma objetiva de saber Pelo cabeçalho no pacote, contendo a identificação _PY_package Por um arquivo especial, chamado _This_a_package Pela existencia, na estrutura de pastas, do arquivo _init_.py Pela existencia de um arquivo, na raiz principal da pasta, de nome _This_is_a_Package. 3. Considere o seguinte código: from statistics import mean Para calcularmos a média como fica a chamada da função? statistics.mean([2,3,4]) math.statistics.mean([2,3,4]) mean[2,3,4] math(2,3,4).final math(2,3,4) Explicação: Quando usamos o comando import em python não precisamos utilizar o nome do pacote antes do comando, no caso para calcular a média precisamos chamar apenas mean([2,3,4]), logo a resposta correta é mean[2,3,4] 4. Qual seria uma possível chamada para utilizar um módulo de um determinado pacote em Python? import modulo import pacote.modulo export pacote import pacote import modulo.pacote Explicação: a sintaxe correta é import pacote.modulo. Em Python temos sempre o pacote (que é uma coleção de módulos) e o módulo correspondente. 5. Considere um arquivo que contenha as funções soma, subtração, multiplicação e divisão. Esse arquivo poderia ser um módulo: de funções relacionadas a strings de funções relacionadas somente a inteiros de funções de rede de funções de computação gráfica de funções matemáticas Explicação: Um módulo em Python é um arquivo contendo definições de funções e instruções. No caso da questão, como as funções se referem a matemática, a resposta correta seria "de funções matemáticas". 6. Avalie as assertivas a seguir, no que se refere aos conceitos de módulos e pacotes. I. Tanto módulo como pacote são formas de organizarmos os arquivos que compõem o projeto do software. II. Mas há diferença entre os 2 conceitos III. Os módulos são organizados em pastas e os pacotes organizados em arquivos Assinale a UNICA opção que apresente APENAS TODAS as assertivas corretas. Apenas I Apenas II e III I, II e III Apenas I e III Apenas I e II Explicação: I. Tanto módulo como pacote são formas de organizarmos os arquivos que compõem o projeto do software. - verdade II. Mas há diferença entre os 2 conceitos - verdade III. Os módulos são organizados em pastas e os pacotes organizados em arquivos - FALSO ao contrário - modulos são organizados em arquivos e pacotes organizados em pastas 1. Avalie cada assertiva a seguir no que se refere a aplicação dos conceitos de escopo e tempo de vida de uma variável I. Não é possível ter uma variável local a uma função com mesmo nome de uma variável global II. Uma variável local só é reconhecida enquanto a função estiver em execução III. A forma de defirmos em Phyton que uma variável usada internamente em uma função é na verdade global, é inserir o termo global antes da referencia a variável, dentro da função. Algo como global ind, sendo "ind" o nome da variável global. Assinale a Unica opção que apresenta a resposta com as assertvas corretas Apenas I e II I, II e III Apenas II Apenas III Apenas II e III Explicação: I. Não é possível ter uma variável local a uma função com mesmo nome de uma variável global - FALSO, é possível sim II. Uma variável local só é reconhecida enquanto a função estiver em execução --> VERDADE III. A forma de defirmos em Phyton que uma variável usada internamente em uma função é na verdade global, é inserir o termo global antes da referencia a variável, dentro da função. Algo como global ind, sendo "ind" o nome da variável global. -->VERDADE 2. Considere o trecho de código a seguir, em Phyton def maior(a, b): if a > b: print(a, 'é o maior') elif a == b: print(a, 'é igual a', b) else: print(b, 'é o maior') maior(4, 1) assinale a correta saída do trecho de código nulo o trecho de código não executa 1 é o maior 4 é igual a 1 4 é o maior Explicação: a = 4 b = 1 a > b --> 4 ´é o maior 3. Para utilizarmos em Python funções matemáticas como por exemplo math.sqrt(2) precisamos em primeiro lugar carregar um módulo. Qual das instruções abaixo realiza essa situação? import all math functions Math.load math import math Math.math load math package Explicação: Em Python utilizamos o comando ¿import¿ para carregar um módulo, no caso acima a intrução para carregar o módulo math seria ¿import math¿. 4. Considere o seguinte código em Python. É uma função que retorna mais de um valor. def sp(x,y): return (x+y),(x*y) Qual estrutura de dados está permitindo esse retorno no código acima? array vetor tupla lista string Explicação: A estrutura que permite é a tupla. A função sp() está retornando uma tupla com elementos de soma e produto. 5. Para o seguinte código abaixo um tipo de dados não pode ser utilizado, qual? def f(l): for i in l: print(i) tupla lista dicionário string inteiro Explicação: A função definida itera sobre um tipo de dados que possua vários componentes, no caso lista, tupla e string podem ser utilizadas com a função, mas se for usado o tipo inteiro ocorrerá um erro. A resposta correta é inteiro. 6. Em Phyton, tal qual em outras linguagens de programação, esperamos que uma funçao retorne um valor. E para tal usamos a palavra chave ________. Porém nem sempre essa palavra chave é obrigatória. Em algumas linguagens, quando isso ocorre a função é chamada de __________________ Assinale a UNICA opção que completa as frases adequadamente. Result e rotina em geral Target e procedure (procedimento) Enter e procedure (procedimento) return e procedure (procedimento) Value e procedure (procedimento) 1. Em Phyton, usamos o comando OPEN() para abrir arquivos. Quantos e quais argumentos devem ser usados no comando? 1 argumento, o caminho e nome do arquivo 1 argumento, o modo de abertura do arquivo nenhum argumento é necessário 2 argumentos, o caminho e nome do arquivo e o modo de abertura do arquivo 1 argumento, que é o caminho (path) do arquivo 2. Durante o desenvolvimento de uma aplicação verificou-se a necessidade de abrir um arquivo denominado palavras.txt, mas só permitir que o usuário possa ler o arquivo. Sendo assim, qual dos comandos abaixo deve ser utilizado no Python para abrir o arquivo só para leitura e atribuir à variável temas? temas = open('palavras.txt', 'e') temas = open('palavras.txt', 'a') open(temas, 'palavras.txt', 'e') temas = open('palavras.txt', 'w') temas = open('palavras') Explicação: Para abrir um arquivo, o Python possui a função open(). Ela recebe dois parâmetros: o primeiro é o nome do arquivo a ser aberto, e o segundo parâmetro é o modoque queremos trabalhar com esse arquivo: e ¿ somente leitura, w ¿ apenas escrita, a ¿ inserção de dados escrito no final do arquivo, r+ - leitura e escrita. 3. Analise a seguinte string: disciplina = 'Programação III' Qual o comando que permite verificar se a string contém caracteres não alfabéticos? disciplina.isalpha() disciplina.alpha() disciplina.len() disciplina.strip() disciplina.char() Explicação: char() ¿ não existe len() ¿ identifica o tamanho da string. alpha() ¿ não existe strip() ¿ retira os espaços em branco no início e no fim da string. 4. Em Python, existem várias possibilidades de manipularmos textos e strings. Considere o seguinte código line = 'teste,de,alguma,coisa' print(line.split(',')) Qual será o resultado desse trecho? testedealgumacoisa ['teste', 'coisa'] [t,e,s,t,e] ['testede','algumacoisa'] ['teste', 'de', 'alguma', 'coisa'] Explicação: A resposta certa é ['teste', 'de', 'alguma', 'coisa']. A função ¿split¿ divide a string de acordo com um parâmetro de entrada, nesse caso é a vírgula. 5. Considere os seguintes comandos em Phyton >>> str1="Phyton123" >>> str1.isalpha() Qual o resultado da execução dessas 2 linhas de código? Nulo false "Phyton" true "123" 6. O Python possui várias bibliotecas para manipulação de dados. Qual das opções abaixo é uma das mais utilizadas? files pandas ursos nets bears Explicação: A biblioteca pandas do Python é uma biblioteca muito utilizada em Data Science, área que precisa manipular grande quantidade de dados. As outras opções não se referem a bibliotecas em Python. 7. Para ler apenas 2 caracteres de um objeto do tipo arquivo chamado arq, usamos: arq.open(2) arq.readlines arq.read() arq.read(2) arq.readline() Explicação: arq.read(2) é a sintaxe correta para a leitura de caracteres 8. Assinale a alternativa que crie uma tupla chamada avaliacao com os seguintes elementos: AV, AVS, SIMULADO. avaliacao [AV, AVS, SIMULADO] avaliacao {'AV', 'AVS', 'SIMULADO'} avaliacao(AV, AVS, SIMULADO) avaliacao ('AV', 'AVS', 'SIMULADO') avaliacao ['AV', 'AVS', 'SIMULADO'] Explicação: Para a criação das tuplas usamos os parênteses. Como os dados são do tipo string, os mesmos devem estar entre aspas (' '). 1 Questão Com relação aos conceitos e uso de listas e tuplas, avalie as assertivas a seguir: I. Listas e duplas tem as mesmas propriedades II. As tuplas são mutáveis tal qual as listas III. Os elementos das listas e tuplas são acessados pela sua posição relativa na estrutura, ou seja pelo indice. Estão corretas APENAS as assertivas I,II e III III I e II II e III I e III Respondido em 25/09/2022 20:17:15 Explicação: I. Listas e duplas tem as mesmas propriedades - FALSO II. As tuplas são mutáveis tal qual as listas - FALSO, são imutáveis III. Os elementos das listas e tuplas são acessados pela sua posição relativa na estrutura, ou seja pelo indice. - Verdade Apenas III está correto 2 Questão Uma tupla é um tipo de estrutura em Python que se parece com as listas, porém uma tupla é ___ restrita a inteiros imutável mutável restrita a inteiros e strings restrita a strings Respondido em 25/09/2022 20:17:22 Explicação: A resposta é imutável. Uma tupla é como uma lista, mas não pode ser modificada, diferentemente dessa última. 3 Questão Qual a finalidade do método len (), que pode ser aplicado tanto a tuplas como a listas? Concatenar 2 ou mais tuplas ou listas Verficar quantos elementos existem na lista ou tuplas Verificar se um elemento existe ou n na lista ou tupla ? Repetir elementos das listas ou duplas Iterar, com o comando FOR, em conjunto Respondido em 25/09/2022 20:17:27 4 Questão Em Python, dicionário é um tipo de estrutura de dados em que há mapeamento entre uma chave (key) e um valor (value). Qual é o método utilizado para obter o conteúdo associado à chave? items() get() value() key() set() Respondido em 25/09/2022 20:17:32 Explicação: Dicionários - Métodos: value() - Permite visualizar os valores armazenados. set() ¿ não existe este método. key() - Permite identificar as chaves de um dicionário. items() - Permite retornar os elementos na forma de tuplas. 5 Questão Analise o seguinte código em Python: estrutura = (3,4,6,4,5,'b','f',5,8,2) print(estrutura.count(5)) Qual o nome dessa estrutura e o que será impresso no console? dicionário, 2 lista, 4 fila, 2 tupla, 2 array, 0 Respondido em 25/09/2022 20:17:38 Explicação: Essa estrutura se chama tupla e a função count(5) contará o número de vezes que o elemento 5 aparece na estrutura, no caso duas vezes, a resposta é a tupla, 2. 6 Questão As tuplas nada mais são do que listas, mas com algumas características específicas. Analise as afirmações a seguir. I. Uma vez criada a tupla, podemos modifica-la a qualquer momento. II. Tuplas são capazes de conter quaisquer outros tipos definidos em Python, como números, strings, outras listas, entre outros. III. O acesso aos elementos da tuplas se dá por meio de índices, onde o primeiro índice em pyhton é o zero (0). Após a sua análise, assinale a opção em que são apresentadas apenas as afirmações corretas. Estão corretas as afirmações: I e III. Estão corretas as afirmações: I, II e III. Estão corretas as afirmações: I e II. Somente a afirmativa: II. Estão corretas as afirmações: II e III. Respondido em 25/09/2022 20:17:45 Explicação: A afirmativa I é incorreta uma vez que as tuplas são imutáveis. 7 Questão Uma das formas de tratamento de erros em Python é por ¿exceções¿. Quais dos comandos abaixo caracteriza uma parte do comando de exceções em Python? if then else def f(x) while try for i from 1 to 10 Respondido em 25/09/2022 20:17:47 Explicação: Uma exceção em Python é tratada pelo comando try < > except, nesse caso a resposta é try. As demais são estruturas de decisão e repetição. 8 Questão Em Python, _________ é um tipo de estrutura de dados em que há mapeamento entre uma chave (key) e um valor (value). Assinale a opção que competa a frase corretamente Fila Lista Ponteiro Tupla Dicionário Respondido em 25/09/2022 20:17:51 1. Com a linguagem Python devidamente instalada e configurada em seu sistema operacional. Qual o comando utilizado para executarmos o código fonte (arquivo) simulador.py ? simulador.py python py.simulador python simulador.py simulador simulador.py Explicação: Para executarmos um programa em Python, usamos a seguinte sintaxe: python .py 2. Qual das linguagens abaixo não é interpretada? Lua C Basic Ruby Python Explicação: A resposta é letra e, pois todas as outras linguagens são interpretadas, ou seja, possuem um interpretador, e C é uma linguagem ¿compilada¿, possui um ¿compilador¿ para gerar o código. 3. O uso de comentários é muito importante durante o desenvolvimento do programa. Assinale a alternativa que apresenta o uso correto de comentários (em linha) em Python. x = 25 & x recebe o valor25 x = 25 @ x recebe o valor 25 x = 25 # x recebe o valor 25 x = 25 /* x recebe o valor 25 /* x = 25 // x recebe o valor 25 Explicação: Para comentários em linha usamos o #. 4. Python é uma linguagem multiparadigma. Identifique, abaixo, o paradigma que não pertence à linguagem Python: Orientado a objetos Orientado a aspectos Lógico Polinomial Estruturado Explicação: A resposta é a letra e, pois a, b, c e d são paradigmas da linguagem Python. Polinomial não é paradigma de computação e nem pertence à linguagem Python. 5. A linguagem Python é relativamente nova, lançada em 1991. É uma linguagem de uso geral, projetada especificamente para tornar os programas bastante legíveis. São características da linguagem: Tipagem não Dinâmica, suporta o paradigma de programação funcional, é uma linguagem compilada. Tipagem Dinâmica, suporta o paradigma de programação funcional, é uma linguagem interpretada. Tipagem Dinâmica, suporta o paradigma de programação lógica, é uma linguagem compilada. Tipagem não dinâmica, suporta o paradigma de programação funcional, é uma linguagem interpretada. Tipagem Dinâmica, suporta o paradigma de programação funcional, é uma linguagem compilada. Explicação: A linguagem Python é multiparadigma, ou seja trabalha com mais de um tipo de paradigma, como orientado a objetos, funcional, lógica, entre outros. Quando em uma linguagem não precisamos declarar variáveis para usá-las dizemos que ela é tipicamente dinâmica. Python é uma linguagem interpretada. 6. O que vai ser impresso no código abaixo? tupla= (1, 2, 3, 4) tupla.append( (5, 6, 7) ) print(len(tupla)) 2 5 Vai gerar uma exceção 7 1 Explicação: Uma tupla não pode ser modificada. Vai gerar uma exceção. 7. O que será impresso pelo código seguinte? print("ABC")#DEF #print("GHI") print("#JK")#LM print("NO#PQ") ABCDEFGHIJKLMNOPQ ABCJKNOPQ ABC#JKNO#PQ ABCNO ABC#DEF#JK#LMNO#PQ Explicação: Os únicos elementos que constituem comentários são: #DEF, #print("GHI"), #LM. Todos os demais serão impressos na ordem em que ocorrem no código. 1. Considere a seguinte linha de comando: print(float(3) + 3); Qual é o resultado dessa expressão? 6 3.0+3 6.0 ERROR 0 Explicação: A expressão float(3) será convertida para 3.0 e quando somada a 3 Python dará como resultado 6.0 porque o tipo float engloba o tipo inteiro. 2. Qual dos tipos abaixo não pertence a linguagem Python? inteiros dicionários listas cordas tuplas Explicação: Cordas não é um tipo computacional e não faz parte dos tipos em Python. 3. Um número imaginário como 3+4i pode ser representado em Python por qual dos seguintes tipos primitivos: tuple complex array int float Explicação: Em Python existe o tipo primitivo ¿complex¿ que representa números complexos (ou também chamados imaginários) 4. Qual o resultado da seguinte linha em Python: print(int(¿1000¿) + 1000); 10000 2000 ERROR 1000 0 Explicação: A resposta é 2000 pois a string ¿1000¿ será convertida para o número inteiro que poderá ser somado a 1000 e ter como resultado 2000. 5. Qual das instruções abaixo caracteriza o conceito de ¿tipagem dinâmica¿? i = 2 String a = 3 int i = 5 String x = ¿teste¿ 2+3 = 5 Explicação: A resposta correta é a letra a, dado que tipagem dinâmica é uma caracferística da linguagem, onde o próprio interpretador infere qual é o tipo da linguagem, no caso ele inferirá que i é uma variável do tipo inteiro. As letras b e c caracterizam tipagem estática, d é uma instrução de soma de dois números e a letra e, é uma instrução onde faltam as aspas para o tipo estático String 6. Considere o seguinte código em Python: valor1 = input("digite um numero"); valor2 = input("digite um outro numero"); resultado = float((int(valor1) + int(valor2)))/2; print(resultado); Considerando que variáveis de valores recebam os inteiros 4 e 6, qual é o resultado final? ERROR 10.0 5.0 5 10 Explicação: O resultado da média dos números 4 e 6 será 5.0, o valor será do tipo float porque a função float() converte a soma dos dois inteiros para float. 7. Considere o seguinte código em Python: a = 1 b = 2 c = a+b print ("o resultado",c); Suponha que este código esteja no arquivo teste.py, qual seria a chamada correta através do prompt do sistema operacional? p teste.py python teste py teste.py python teste.py p teste Explicação: A resposta é a letra d, pois um programa em python é chamado usando o comando python e o nome do arquivo com a terminação .py. As outras chamadas não são funcionais. 8. Seja a string em Python: str = 'Python'; Qual o resultado da expressão: print(str[0]); P y o h t Explicação: A resposta é P, pois em python as cadeias de caracteres começam com o primeiro elemento 0 (zero). 1. Uma loja de varejo, deseja classificar seus produtos em Promo10, Promo20 e Promo30, de acordo com a tabela abaixo. Preço do Produto (preco) Classificação <= R$ 10,00 Promo10 Entre R$ 10,00 e R$ 50,00 Promo20 >= R$ 50,00 Promo30 Assinale o trecho de programa que implementa de forma correta a estrutura condicional. if preco <= 10.00: print("Promo 10") elseif preco < 50.00 : print("Promo 20") else: print("Promo 30") if preco <= 10.00: print("Promo 10") elif preco >10.00 or preco < 50.00 : print("Promo 20") else: print("Promo 30") if preco <= 10.00: print("Promo 10") elif preco < 50.00 : print("Promo 20") else: print("Promo 30") if preco <= 10.00: print("Promo 10") elif preco < 50.00 : print("Promo 20") else: print("Promo 30") if preco <= 10.00: print("Promo 10") elif preco > 50.00 : print("Promo 20") else: print("Promo 30") Explicação: As estruturas de decisão em Python são: Tipo Descrição if Usado para executar uma ação, caso uma condição seja verdadeira. Else Usado quando a condição não for satisfeita. Elif Usado se mais de uma condição alternativa. Em Python, o comando if possui a seguinte sintaxe: if expressão: comando(s) else: comando(s) É obrigatória a identação para criar o bloco de comandos. 2. Uma empresa deseja conceder um desconto de 15% para as vendas acima de R$ 120,00. Assinale o trecho de programa que implementa de forma correta a estrutura condicional, onde a variável preco conterá o valor a ser pago, já incluindo o desconto. if preco > 120: preco = preco * 0.15 if preco > 120: preco = preco * 0.85 if preco >= 120: preco = preco * 1.15 if preco >= 120: preco = preco * 0.15 if preco > 120: preco = preco * 1.15 Explicação: Para calcularmos o desconto trabalhamos coma seguinte fórumla: Valor do desconto: preco * Percentual do desconto / 100 Valor com desconto: preco - preco * Percentual do desconto / 100 ou preco*0.85 A questão pede o preço com o desconto. 3. Qual é a função do operador relacional ¿==¿ em Python? atribuição igual ou lógico diferente e lógico Explicação: == signfica o operador lógico de igualdade em Python, neste caso a resposta é a letra a. 4. Considere o seguinte código em Python: valor = 7 while (valor>3): print(valor) valor -= 1 else: ultimo_valor = valor print(ultimo_valor) Qual é o resultado da variável ¿ultimo_valor¿, quando terminar o código? 7 4 6 5 3 Explicação: A condição é imprimir enquanto o valor for maior que 3. Quando chegar ao valor 3, o código executará a instrução else, e terá o valor igual a 3. A resposta correta é a letra e. 5. Considere o código a seguir: x = 10 soma = 0 while (x > 0): x = x - 2 soma = soma + x print(soma) Após sua execução, o resultado será: 20 18 45 55 30 Explicação: Teste de mesa A estrutra de repetição irá ocorrer enquanto x for maior que 0. Sendo assim, será executados os seguintes valores para x. x: 8 soma: 8 x: 6 soma: 14 x: 4 soma: 18 x: 2 soma: 20 x: 0 soma: 20 6. Uma empresa deseja saber qual será o valor total da folha de pagamento de seus funcionários no próximo mês. Analise o programa abaixo (em Python) . i = 1 soma = 0 while __________________ # sentença 1 sal = float( input('Salário..: ') ) soma = soma + sal i = i + 1 print("Total da Folha de Pagamento..: R$ ", soma) Sabe-se que a empresa possui 45 funcionários. Complete a sentença 1 de forma que o programa ao final apresente o Valor Total da Folha de pagamento da empresa. ( i = 45 ): ( i > 45 ): ( i <= 45): ( i < 45 ): ( i >= 45): Explicação: Enquanto a condição for verdadeira a estrutura de repetição é executada. Sendo assim, como a empresa possui 45 funcionários e i começa com 1, a condição é i<=45. 7. Analise as informações abaixo: I. Python é interpretado II. Python é orientado a objetos III. Python é interativo Estão corretas as afirmações: Somente I e II I, II e III Somente I e III Somente II e III Somente I Explicação: Todas as afirmações estão corretas 1. Em orientação a objetos, a característica que determina a possibilidade de um descendente alterar a funcionalidade de um método herdado é deominada: encapsulamento polimorfismo abstração herança composição Explicação: Através da herança é possível criar uma nova classe a partir de outra já existente, aproveitando suas características, mas algumas funcionalidades podem não ser adequadas, podendo ser modificadas através da sobrescrita destes métodos, segundo um processo denominado polimorfismo. 2. Ao definirmos uma classe Carro em Python, qual seria um possível método para ela? def acelerar(vel): define acender(valor): define fechar(): def somar(a,b): define plantar(lugar): Explicação: A resposta é a letra b, porque um método é uma ação a ser executado pelo objeto, no caso, um carro possui como uma ação possível a aceleração, as letras c, d e e estão com uma palavra chave define que não é do python, e a letra a, somar dois parâmetros não se encaixa no objeto carro. 3. Assinale a alternativa que implementa a função IMC. Esta função recebe como parâmetro de entrada o peso e a altura de uma pessoa e retorna com o valor do IMC. def IMC(peso, altura): calculo = float(peso) / float(altura) * float (altura)) return calculo IMC(peso, altura): calculo = float(peso) / float(altura) * float (altura)) print(calculo) IMC(): calculo = float(peso) / float(altura) * float (altura)) return calculo def IMC(peso, altura): calculo = float(peso) / float(altura) * float (altura)) print(calculo) IMC(peso, altura): calculo = float(peso) / float(altura) * float (altura)) return calculo Explicação: Estrutura de uma função em Pyhton: 1. Toda função em Python começa com o comando def. 2. Depois do def, há o nome da função. 3. Em seguida, aparece a lista de parâmetros, que pode estar vazia, mas os parênteses são obrigatórios. 4. Após essa lista, estão os dois pontos (¿:¿). 5. Todo o código que estiver indentado fará parte do corpo da função. A indentação é muito importante na definição de funções. 6. Toda função termina com o comando return, que pode ser seguido ou não de uma variável de retorno. 4. Para acessar o atributo de um objeto Python, pode ser utilizado, alternativamente ao acesso direto, a seguinte função: delattr expattr getattr hasattr setattr Explicação: Funções: getattr - retorna o valor do atributo, hasattr - testa se existe o atributo, setattr - seta o valor do atributo, delattr - remove o atributo, expattr - não existe. 5. Durante o desenvolvimento do projeto, foi necessário criar um método construtor para a classe Empregado. Assinale a opção que apresenta a criação do método construtor. def _empregado_(self, matricula, nome, cargo): def _construtor_(self, matricula, nome, cargo): _init_(self, matricula, cargo): def _init_(self, matricula, nome, cargo): _empregado_(self, matricula, cargo): Explicação: O método construtor é criado através da sintaxe: def _init_(): 6. Toda linguagem orientada a objetos permite a especificação de métodos construtores na classe, os quais são responsáveis pela inicialização do objeto recém-alocado na memória. Na linguagem Python este método recebe o seguinte nome: this def __init__ constructor self Explicação: O método construtor é denominado __init__, sendo definido, como os demais métodos, através de def __init__(self, parâmetros...). Quanto aos demais, def serve para criar uma função ou método e self é o ponteiro de auto-referência implícito do Python. O this e o constructor não pertencem à sintaxe Python. 7. Durante o desenvolvimento de um programa em Pyhton foi criada a função cadastro, a qual recebe como parâmetros o nome e a idade de uma pessoa, respectivamente. Assinale a alternativa que executa a função corretamente. cadastro (20, "Paulo") cadastro("Paulo", 20) def cadastro ("Paulo", 20) def cadastro(20, "Paulo") cadastro() Explicação: Para chamarmos uma função devemos usar a seguinte sintaxe: Nome da função (parâmetros de entrada) 1. Qual das opções abaixo contém conceitos apenas do paradigma orientado a objetos? classe, estrutura de repetição método, classe, herança função, variável atribuição, algoritmo variável, estrutura condicional Explicação: A resposta é a letra a, que possui três conceitos que se aplicam a orientação a objetos. 2. Seja a classe definida como FormaGeométrica em Python, qual das opções abaixo poderia ser uma classe herdada dessa classe? class Quadrado(FormaGeometrica) class Carro(FormaGeometrica) Nenhuma das opções está correta. class Animal(FormaGeometrica) class Pessoa(FormaGeometrica) Explicação: A resposta é class Quadrado(FormaGeometrica), classe Quadrado, porque uma subclasse herda as propriedades da superclasse, e como só existeuma única forma geométrica entre as opções ela é a resposta correta. 3. Qual é o objetivo do comando super() na declaração abaixo? class Carro(Veiculo): def __init__(self,vel,marca): super().__init__(vel) self.marca = marca Apenas a sintaxe normal para a definição de uma classe simples em Python. Permite que a classe herde o método da superclasse. Nenhuma das respostas anteriores está correta. Uso de polimorfismo em Python. Inicializa a variável vel. Explicação: A resposta é letra a. É desse modo que se implementa a sobrecarga de métodos em Python, possibilitando extender a funcionalidade da superclasse para as classes filhas. 4. Qual é a saída do comando abaixo: >>> a='10' >>> print(a*2) Erro! 20 `20¿ 1010 100 Explicação: A variável a contém uma string. Usar o operador "*" vai repeti-la 5. O que o código abaixo imprime? class Vendas: def __init__(self, id): self.id = id id = 100 val = Vendas(123) print (val.id) 100 Nenhuma das anteriores 123 Nada. Vai dar pau Id Explicação: O construtor vai fazer a atribuição para a variável id do objeto val 6. Considere a seguinte definição da classe fração: class Fracao: def __init__(self,num,den): self.num = num self.den = den Qual seria um possivel cabeçalho para um método de multiplicar duas frações? f.multiplicar(f) def mul(fracao1, fracao2) fracao.multiplicar(f1) Nenhuma das anteriores está correta. def __mul__(self,fracao): Explicação: A resposta é: def __mul__(self,fracao): onde é passado como parâmetro um objeto da classe Fracao de onde serão retirados o numerador e o denominador. Abaixo o código desse método: def mul(self,fracao): return Fracao(self.num*fracao.num, self.den*fracao.den) 7. Qual dos comandos abaixo define uma relação de herança em Python? class Carro inherits Veiculo class Carro is Veiculo Carro is Veiculo class Carro(Veiculo) : class Carro extends Veiculo Explicação: A resposta é a letra a, que tem a sintaxe correta para definir, em Python, que a classe Carro é uma extensão da classe Veiculo. 8. A função abaixo em Python ilustra um conceito muito importante no paradigma funcional. def fatorial(valor): if valor == 0: return 1 else: return valor * fatorial(valor-1) Qual é esse conceito? Orientação a objetos Multiparadigmas Tipagem dinâmica Recursividade Linguagens de script Explicação: A resposta é a letra c. A função implementa a função fatorial que chama a ela mesma no comando else. Esse conceito de uma função chamar ela mesma é definido por recursividade. 1. As estruturas de dados são formas de construir e armazenar informações para posterior recuperação. Dentre as estruturas podemos trabalhar com a Pilha. Analisando o código abaixo, assinale a alternativa que equivale ao comando print("Pilha: ", pilha) ao final da execução do código. Sabe-se que a função insert permite inserir um elemento na pilha e a função pop permite retirar o elemento da pilha. pilha = [] pilha.insert(0,10) pilha.insert(0,50) pilha.insert(0,40) pilha.insert(0,120) pilha.pop(0) pilha.insert(0,15) pilha.pop(0) pilha.pop(0) print("Pilha: ", pilha) Pilha: [40, 50] Pilha: [10, 50, 40, 120, 15] Pilha: [120, 15] Pilha: [ 50, 10] Pilha: [15, 120, 40, 50, 10] Explicação: Conceito de Pilha ¿ O último a entrar é o primeiro a sair. Passo a passo da execução do código Pilha.: [] Pilha.: [10] Pilha.: [50, 10] Pilha.: [40, 50, 10] Pilha.: [120, 40, 50, 10] Pilha.: [40, 50, 10] Pilha.: [15, 40, 50, 10] Pilha.: [40, 50, 10] Pilha.: [50, 10] 2. Listas são um dos principais tipos de dados em Python. Analise as afirmações a seguir. I. Em Python, listas de objetos são representadas pelo tipo list. Esse tipo de dados é basicamente uma sequência de elementos, que podem ou não ser do mesmo tipo. II. Python permite também a criação de listas aninhadas (uma lista dentro da outra). Este recurso é útil quando desejamos criar listas de várias dimensões (ou matrizes). III. Em Python, normalmente percorremos listas de elementos sem que existam índices associados a eles. Após a sua análise, assinale a opção em que são apresentadas apenas as afirmações corretas. Estão corretas as afirmações: I, II e III. Estão corretas as afirmações: I e III. Estão corretas as afirmações: II e III. Estão corretas as afirmações: I e II. Somente a afirmativa: I. Explicação: Vale destacar que o Python nos permite percorremos uma lista por meio de intervalos, usando a função range() 3. Ao executarmos os seguintes comandos em Python qual o resultado que teremos? lista = [4,2,1,5,0] lista.sort() print(lista) [5,3,4,2,1] [5,4,2,1,0] [5,4,3,2,1] [0,1,2,4,5] [1,2,3,4,5] Explicação: a resposta é [0,1,2,4,5], pois a função sort() ordena a lista do menor para o maior. 4. Qual o resultado dos seguintes comandos em Python? lista1 = [1,2,3] lista2 = [4,5,6] print(lista1 + lista2) [1,2,3] [4,5,6] [2,4,5,6] [1,2,3,4,5,6] [6,5,4,3,2,1] Explicação: Comentário: a resposta é [1,2,3,4,5,6]. O operador + junta os elementos de duas listas. 5. A pilha é uma estrutura de dados que permite a inserção/remoção de itens dinamicamente seguindo a norma de último a entrar, primeiro a sair. Suponha que para uma estrutura de dados, tipo pilha, são definidos os comandos insert (insere um elemento da pilha) e pop (remove um elemento da pilha. Considere que, em uma estrutura de dados tipo pilha "pilha", inicialmente vazia, sejam executados os seguintes comandos: pilha = [] pilha.insert(0,10) pilha.insert(0,5) pilha.insert(0,3) pilha.insert(0,40) pilha.pop(0) pilha.insert(0,11) pilha.insert(0,4) pilha.insert(0,7) pilha.pop(0) pilha.pop(0) print("Pilha.: ", pilha) Após a execução dos comandos, o elemento no topo da pilha e a soma dos elementos armazenados na pilha são, respectivamente, 11 e 29 7 e 40 11 e 80 7 e 29 4 e 80 Explicação: Conceito de Pilha ¿ O último a entrar é o primeiro a sair. Resultado final da Pilha.: [11, 3, 5, 10] Elemento que está no topo da pilha é o 11. Soma dos elementos da pilha: 11+3+5+10 =29 6. Existem várias políticas de enfileiramento para o tipo abstrato de dados ¿Fila¿. Desses, qual é a sigla que define uma fila onde o primeiro a entrar é o primeiro a sair da fila? fila por prioridade fila encadeada FIFO pilha enfileirada fila enfileirada Explicação: O termo FIFO significa ¿First in, First out¿ que significa que o primeiro a entrar é o primeiro a sair, então a resposta certa é FIFO. 7. As estruturas de dados são formas de construir e armazenar informações para posterior recuperação. Dentre as estruturas podemos trabalhar com a Fila. Analisando o código abaixo, assinale a alternativa que equivale ao comando print("Fila: ", fila) ao final da execução do código. Sabe-se que a função append permite inserir um elemento na fila e a função pop permite retirar o elemento da fila. fila = [] fila.append(10) fila.append(3) fila.append(5) fila.append(8) fila.pop(0) fila.pop(0) fila.append(20) print("Fila: ", fila) Fila: [ 5, 8, 20] Fila: [10, 3, 5, 8, 20] Fila: [20, 8, 5] Fila: [10, 3, 5, 8]Fila: [5, 8] Explicação: Conceito de Fila ¿ O primeiro a entrar é o primeiro a sair. Passo a passo da execução do código Fila: [] Fila: [10] Fila: [10, 3] Fila: [10, 3, 5] Fila: [10, 3, 5, 8] Fila: [3, 5, 8] Fila: [5, 8] Fila: [5, 8, 20]