SóProvas


ID
5605705
Banca
FGV
Órgão
Banestes
Ano
2021
Provas
Disciplina
Programação
Assuntos

Considere o código Python a seguir.


def F(a, b, c):

      for k in range(a,b):

           print k ** c


Dado que uma execução da função F exibiu os números


16, 9, 4, 1, 0, 1,


é correto afirmar que os valores dos parâmetros a, b, c empregados foram, respectivamente:

Alternativas
Comentários
  • Como a saída tem 6 valores, o range tem que ter um intervalo para 6 repetições. Dado que o valor b do range não é incluído fica -4 e 2, pois de -4 até 1 tem 6 valores, e o 2 não incluído.

    O ** eu não sabia, mas pelo jeito é potência. Então passando 2 como c, ele vai calcular -4^2 = 16, -3^2 = 9, -2^2 = 4 ....

  • Para os que não são familiarizados com a linguagem e ficaram perdidos igual eu.

    O valor de "k" será defino no próprio "for" usando o "range"

    a defnição de Range: The  function returns a sequence of numbers, starting from 0 by default, and increments by 1 (by default), and stops before a specified number.

    Então vai do primeiro número em incrementos de "1 em 1" (por padrão) e para ANTES do segundo número especificado.

    Logo, temos:

    ---------------

    def F(a, b, c):

        for k in range(a,b):

            print k ** c

    --------------

    def F(-4, 2, 2):

        for k in range(-4,2): **Reparem que lood rodará 6 vezes (-4,-3,-2,-1,0,1)

    ----------------

            print -4 ** 2

    16

    ----------------

            print -3 ** 2

    9

    E por ai vai. Sei que é óbvio para quem manja da linguagem mas para os desavisados igual eu fica a explicação