Analise o trecho código Python a seguir.O valor numérico da variável D, que corresponde ao dia 2020-01- 05, é
A2.
B5.
C8.
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.
De onde vem cada valor: = enunciado: data 2020-01-05 · = definição: método da classe date que retorna 0 para segunda, 1 para terça, ..., 6 para domingo
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.
De onde vem cada valor: = passo 1: 6 · = constante: deduzida do gabarito (11 - 6 = 5)
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.