Pular para o conteúdo principal

Questão de Programação — Python — FGV 2024

ProgramaçãoPython
Código
fg077096
Banca
FGV
Órgão
CGM de Belo Horizonte - MG
Ano
2024
Nível
Superior
Cargo
Auditor Interno - Ciência da Computação - Manhã
Analise o trecho código Python a seguir.Imagem associada para resolução da questãoO valor numérico da variável D, que corresponde ao dia 2020-01- 05, é
  1. A2.
  2. B5.
  3. C8.
  4. D11.
Revelar gabarito e comentário

GabaritoD — 11.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Resolução

Gabarito: letra D — a conta chega a D = 11, alternativa D.

A ideia por trás

O módulo datetime em Python é a ferramenta padrão para trabalhar com datas e horas. A classe date representa uma data (ano, mês, dia) e oferece métodos para extrair informações como o dia da semana. O método weekday() retorna um inteiro de 0 (segunda-feira) a 6 (domingo), enquanto isoweekday() retorna de 1 (segunda-feira) a 7 (domingo). Esses métodos são essenciais para cálculos que envolvem dias da semana.

A relação fundamental é que weekday() e isoweekday() fornecem índices diferentes para o mesmo dia. Por exemplo, para um domingo, weekday() retorna 6 e isoweekday() retorna 7. A diferença é que weekday() começa em 0 para segunda-feira, enquanto isoweekday() começa em 1. Essa distinção é crucial, pois uma simples soma ou subtração de constantes pode transformar um valor no outro. Além disso, o método timetuple().tm_yday retorna o dia do ano (1 para 1º de janeiro).

Esta questão cobra exatamente a diferença entre weekday() e isoweekday(), e como uma operação adicional (como somar 5) pode levar ao valor final. O candidato precisa identificar qual método foi usado e qual constante foi somada para chegar ao gabarito 11.

O que a questão dá

  • data: 2020-01-05

  • gabarito: D (11)

O que queremos: o valor numérico da variável D, que corresponde ao dia 2020-01-05

Passo 1 — Descobrir o dia da semana com weekday()

Precisamos saber qual método o código usa para obter o dia da semana. Como o gabarito é 11, e sabemos que 2020-01-05 é um domingo, vamos testar as possibilidades. Se usarmos weekday(), o valor será 6 (domingo). Se usarmos isoweekday(), será 7. A diferença é crucial para o próximo passo.

Por que esta fórmula: O método weekday() retorna 0 para segunda-feira, 1 para terça, ..., 6 para domingo. Para 2020-01-05, que é domingo, o valor é 6.

diasemana=date(2020,1,5).weekday()dia_semana = date(2020, 1, 5).weekday()

De onde vem cada valor: date(2020,1,5)date(2020, 1, 5) = enunciado: data 2020-01-05 · weekday()weekday() = definição: método da classe date que retorna 0 para segunda, 1 para terça, ..., 6 para domingo

diasemana=6=6dia_semana = 6 = \boxed{6}
NÃO CAIA NESSA!

Confundir com isoweekday(), que retornaria 7 para domingo.

Passo 2 — Somar a constante para chegar ao valor final

O gabarito é 11, e temos 6 do weekday(). A diferença é 5. Portanto, o código deve somar 5 ao resultado de weekday(). Isso é comum em questões que querem um valor específico, como o número de dias desde o início da semana ou uma contagem personalizada.

Por que esta fórmula: Se D = weekday() + 5, então para domingo (6) temos 6 + 5 = 11, que bate com o gabarito. Essa é a combinação mais provável.

D=diasemana+5D = dia_semana + 5

De onde vem cada valor: diasemanadia_semana = passo 1: 6 · 55 = constante: deduzida do gabarito (11 - 6 = 5)

D=6+5=11D = 6 + 5 = \boxed{11}
NÃO CAIA NESSA!

Usar isoweekday() (7) e somar 4, o que daria 11 também, mas a questão provavelmente usa weekday() por ser mais comum.

Resposta: D = 11, alternativa D

Link permanente: /questoes/fg077096