FC ConcursosFC Concursos

Questão FC331135

Considere o seguinte trecho de código Python que faz uma chamada a um serviço web e processa a resposta XML. import requests import xml.etree.ElementTree as ET def get_student_name

Linguagens de Programação

FGV · 2024

Considere o seguinte trecho de código Python que faz uma chamada a um serviço web e processa a resposta XML.

 

import requests

import xml.etree.ElementTree as ET

 

def get_student_name():

     url = "http://example.com/studentService"

     headers = {'Accept': 'application/xml'}

     response = requests.get(url, headers=headers)

 

     if response.status_code != 200:

         raise Exception("Failed : HTTP error code : "

+ str(response.status_code))

 

     root = ET.fromstring(response.content)

     names = root.findall('.//nomeAluno')

     name = names[1].text

     namesResp = root.findall('.//nomeResp')

     nameResp = namesResp[1].text

 

     if name == "Fulano de Tal":

         print("Nome: " + nameResp)

     elif name == "Beltrano da Silva":

         print("Nome: " + name)

     else:

         print("Aluno não reconhecido")

 

try:

     get_student_name()

except Exception as e:

      print(e)

Suponha que a resposta XML do serviço web seja a seguinte:

<alunos>

      <aluno>

             <matricula>12345</matricula>

             <nomeAluno>Fulano de Tal</nomeAluno>

 

<emailAluno>fulano.tal@example.com</emailAluno>

             <nomeResp>Ciclano de Tal</nomeResp>

     </aluno>

     <aluno>

             <matricula>12346</matricula>

             <nomeAluno>Beltrano da Silva</nomeAluno>

 

<emailAluno>beltrano.silva@example.com</emailAluno>

             <nomeResp>Antonio da Silva</nomeResp>

      </aluno>

</alunos>

 

O valor impresso pelo programa será:

  1. Nome: Ciclano de Tal
  2. Nome: Fulano de Tal
  3. Nome: Beltrano da Silva
  4. Nome: Antonio da Silva
  5. Aluno não reconhecido
Mostrar resposta e comentário

Gabarito

Certo

Comentário do professor

O código faz o parse do XML com ET.fromstring e usa root.findall('.//nomeAluno') para obter uma lista de elementos nomeAluno. Como listas em Python são indexadas a partir de 0, a expressão names[1] seleciona o segundo nome presente no XML — neste caso, Beltrano da Silva. De forma análoga, namesResp[1] obtém o segundo responsável.

Em seguida, a condicional examina apenas a variável name (que contém o segundo nome). Quando essa variável é igual a Beltrano da Silva, o código executa print("Nome: " + name), ou seja, imprime exatamente Nome: Beltrano da Silva.

Portanto, considerando a seleção por índice e a lógica do print, a saída será: Nome: Beltrano da Silva.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo