Baixe o app para aproveitar ainda mais
Prévia do material em texto
Desafios 1.1 https://statics-marketplace.plataforma.grupoa.education/sagah/4c791ba9-576e-4663-9536-74ddbeb1c33d/c15abd9f-e558-45fa-8e54-d3c058f6fa6f.png 1.2 Padrão de resposta esperado Como sugerido pelo arquiteto de soluções, para realizar a remoção de pacotes MySQL, será utilizada a instrução Python no gerenciador PIP: pip uninstall mysqlclient Uninstalling mtsqlclient: Após isso, serão mostradas as remoções: /usr/local/lib/python/site-package/MySQLdb/* /usr/local/lib/python/site-package/_mysql.so /usr/local/lib/python/site-package/_mysql_exceptions.py /usr/local/lib/python/site-package/mysqlclient-dist-info/* Successfully uninstalled mysqlclient 2.1 Padrão de resposta esperado a) Na primeira e terceira linhas faltantes deve ser inserido o código saltos += 1, pois independentemente de qual expressão condicional for avaliada, a cada repetição (loop), a variável saltos deve ser incrementada. b) Na segunda linha faltante deve ser inserido o código indice += 2, pois na avaliação da expressão condicional, o algoritmo verifica se o valor do índice acrescido de 2 é diferente do valor que a nuvem perigosa daquela posição tem, no caso, o valor 1. Assim, se a condição for verdadeira, deve-se avançar no índice duas (2) posições. c) Na quarta linha faltante deve ser inserido o código indice += 1, pois na avaliação da expressão condicional, o algoritmo verifica se o valor do índice acrescido de 2 é diferente do valor que a nuvem perigosa daquela posição tem, no caso, o valor 1. Assim, se a condição for falsa, o bloco else é executado e deve-se avançar no índice apenas uma (1) posição. 2.2 3.1 Para melhorar o código do cálculo do IMC, a função deve ser quebrada em duas ou mais funções. Antes de tudo, você deve definir a função utilizando a palavra reservada def, seguido pelo nome da função. Em seguida, incluir os caracteres () e : e, por fim, os comados desse bloco. Veja como fica o fluxo de execução do cálculo do IMC utilizando a modularização: def calcula_imc (peso, altura): resultado = peso/ (altura*altura) return resultado def requisita_valores(): nomePaciente = input("Digite o nome do paciente ") telefonePaciente = input("Digite o telefone do paciente ") peso = float(input("Digite o peso do paciente ")) altura = float(input("Digite a altura do paciente ")) return nomePaciente, telefonePaciente, peso, altura def principal(): nomePaciente, telefonePaciente, peso, altura = requisita_valores() imc = calcula_imc(peso, altura) print("O imc do paciente ",nomePaciente," é", imc) if __name__ == “__main__”: principal() 3.2 Padrão de resposta esperado O fato é que o comando print esta pedindo para exibir na tela algum valor que está na lista. A questão não se dá apenas porque os valores da lista são tipos numéricos, e sim porque o índice da lista tem que ser referenciado por um inteiro. Nesse caso, resolveria-se o problema da seguinte forma: 0 para exibir valor 1 1 para exibir valor 2 2 para exibir valor 3 4.1 A fórmula para calcular a média de notas dá-se por: Média = nota1+nota2+nota3+notan/quantidadeDeNotas Clique no botão a seguir e veja o código do cálculo de média: # -*- coding: utf-8 -*- # Fórmula de média de nota = n1+n2+n3+n4/qtdNotas soma = 0 #variável que irá armazenar o acumulo das notas contador = 0 # variável que irá armazenar a quantidade de notas inseridas para auxiliar no calculo de média aluno = input("Digite o nome do aluno: ") #variável que irá armazenar o nome do aluno while True: #looping infinito para o professor digitar quantas notas existirem entrada = input("Digite a nota do aluno ou S para sair: ") #variável que irá receber a nota if entrada == 's': #verifica se o valor digitado for s break # se o valor digitado for s, o laço de repetição é interrompido nota = int(entrada) #converte o valor digitado para inteiro soma = soma + nota #acumulador de notas contador = contador + 1 #contador de notas inseridas if contador != 0: media = soma / contador #calculo de média print("O aluno ", aluno, "possui a nota: ",media) #impressão do resultado final Você poderá testá-lo em uma plataforma on-line como https://repl.it/repls/SeashellDroopyApache, por exemplo. 4.2 Padrão de resposta esperado O código que deve ser colocado na linha demarcada com # ... é: return jogadas[indice % len(jogadas)] O comprimento da lista de jogadas é 3. Então, se for usado o operador "resto" entre o índice e o comprimento da lista, teremos: (0 % 3) é 0, e índice 0 é a posição do item Pedra na lista de jogadas. (1 % 3) é 1, e índice 1 é a posição do item Papel na lista de jogadas. (2 % 3) é 2, e índice 2 é a posição do item Tesoura na lista de jogadas. (3 % 3) é 0, e índice 0 é a posição do item Pedra na lista de jogadas. (4 % 3) é 1, e índice 1 é a posição do item Papel na lista de jogadas. (5 % 3) é 2, e índice 2 é a posição do item Tesoura na lista de jogadas. (6 % 3) é 0, e índice 0 é a posição do item Pedra na lista de jogadas. (7 % 3) é 1, e índice 1 é a posição do item Papel na lista de jogadas. (8 % 3) é 2, e índice 2 é a posição do item Tesoura na lista de jogadas. E assim sucessivamente. 5.1 # função responsável por somar duas matrizes # Parâmetros: matriz A e matriz B que serão somadas. # Obs.: as matrizes são quadradas, ou seja possuem a mesma quantidade de # linhas e colunas def somarMatrizes(matrizJaneiro, matrizFevereiro): matriz_soma = [] # matriz vazia que receberá o resultado da soma quant_linhas = len(matrizJaneiro) # variável que armazena a quantidade de linhas de uma matriz quant_colunas = len(matrizJaneiro[0]) # variável que armazena a quantidade de colunas de uma matriz # laço de repetição para acessar as linhas das matrizes, # em que i executa de 0 até a quantidade de linhas for i in range(quant_linhas): matriz_soma.append([]) # laço de repetição para acessar as colunas das matrizes for j in range(quant_colunas): # soma a primeira posição da matriz A com a primeira posição da Matriz B soma = matrizJaneiro[i][j] + matrizFevereiro[i][j] # armazena o resultado na matriz resultado matriz_soma[i].append(soma) return matriz_soma # Função responsável por apresentar a matriz para o usuário # Parâmetros: matriz que se deseja apresentar e a quantidade de linhas def mostraMatriz(matriz, linhas): # laço de repetição em que i executa de 0 até o tamanho da matriz # e utiliza o valor de i para acessar a posição na matriz for i in range(linhas): print(matriz[i][:]) if __name__ == "__main__": # cria a matriz do primeiro mês matrizJaneiro=[[40,90,32,23], [30,95,3,33], [45,90,8,33]] # cria a matriz do segundo mês matrizFevereiro=[[0,1,1,0], [35,32,3,3],[10,30,0,9]] # chama a função de somar matrizes passando por parâmetro as duas matrizes # criadas e armazena o resultado na matriz auxiliar matrizResult=somarMatrizes(matrizJaneiro, matrizFevereiro) # chama a função de mostrar matriz, em que deseja-se apresentar a matriz resultado mostraMatriz(matrizResult, len(matrizResult)) 5.2 De acordo com o enunciado do desafio, para que o círculo (representado pela classe Círculo – linha 1) contenha informações de posicionamento cartesiano, é importante que seja atribuído o código necessário de dois atributos (centrox e centroy – linhas 3 e 4). Para a representação do raio de um círculo, foi definido um atributo (raio – linha 5). A fim de inicializar o objeto com valores para os seus atributos, foi implementado um método inicializador em Python (linha 2 a 5). Para cada operação sobre o círculo solicitado no enunciado, foi criado um método correspondente: • calcular a área do círculo – método area (linhas 6 e 7); • calcular o comprimento da circunferência – método circunferencia (linhas 8 e 9); • calcular o diâmetro do círculo – método diametro (linhas 10 e 11); • mudar a posição do círculo – método mover (linha 12 a 14). Por fim, foi criado um exemplo para instanciar um objeto círculode centro (0,0) e raio 1, atribuindo-o à variável c1. Lembre-se que ao usar o nome de uma classe em Python no lado direito de um comando de atribuição, de uma vez só estão sendo chamados o seu construtor e o seu inicializador. A seguir, foram realizadas chamadas de cada método disponível sobre o objeto c1 e os resultados impressos no console. Por exemplo, para calcular a área do círculo c1, foi utilizado o código c1.area(). De forma análoga, podemos consultar o valor de um atributo do objeto círculo, como foi feito no código c1.centrox. A seguir acompanhe o objeto criado.
Compartilhar