Considere o código escrito em linguagem Python abaixo a = 1...

Próximas questões
Com base no mesmo assunto
Q2236126 Programação

Considere o código escrito em linguagem Python abaixo


a = 10

b = 12


for i in range(b):

     

    if i%3 :

          a = a + 3

     elif i%2 :

         a = a + 2

      else :

        a = a + 1

    print(a)


O valor da variável “a” exibido é 

Alternativas

Comentários

Veja os comentários dos nossos alunos

Aqui deu erro..

Em Python qualquer valor diferente de 0 automaticamente é true.

Logo o valor de A = 40

Fonte: https://pt.stackoverflow.com/questions/270815/como-o-python-determina-se-um-valor-%C3%A9-verdadeiro

Quando o resto da divisão do “i” for igual a 0 (zero) é True, ou seja, não faz o incremento.

O incremento ocorre quando tiver sobra na execução do módulo, ou seja, só há incremento quando a operação for falsa.

a=10

1ª - i = 0 => Vai cair no else: a = a + 1 => a =11

2ª - i = 1 => Vai cair no if i%3: tem resto 1 (falso) => a + 3 => a =14

3ª - i = 2 => Vai cair no if i%3: tem resto 2 (falso) => a + 3 => a =17

4ª - i = 3 => Vai cair no if i%2: tem resto 1 (falso) => a + 2 => a =19

5ª - i = 4 => Vai cair no if i%3: tem resto 1 (falso) => a + 3 => a =22

6ª - i = 5 => Vai cair no if i%3: tem resto 2 (falso) => a + 3 => a =25

7ª - i = 6 => Vai cair no if i%3: tem resto 0 (true) => não faz incremento

Vai cair no if i%2: tem resto 0 (true) => não faz incremento

Vai para o else: => a + 1 => a =26

8ª - i = 7 => Vai cair no if i%3: tem resto 1 (falso) => a + 3 => a =29

9ª - i = 8 => Vai cair no if i%3: tem resto 2 (falso) => a + 3 => a =32

10ª - i = 9 => Vai cair no if i%3: tem resto 0 (true) => não faz incremento

Vai cair no if i%2: tem resto 1 (false) => a + 2 => a =34

11ª - i = 10 => Vai cair no if i%3: tem resto 1 (true) => a + 3 => a =37

12ª - i = 11 => Vai cair no if i%3: tem resto 1 (true) => a + 3 => a =40

No final faz o print: 40

Quem quiser entender melhor rode este script:

a = 10

b = 12

for i in range(b):

print(f'{i:02} ->>> 3 -> {i}%3 é {i%3 != 0} {i}%3 é {i%3}\t2 -> {i%2 != 0} {i}%2 é {i%2}', end='\t')

if i%3 : a = a + 3; print(f'{a-3} incrementado em 3 = {a}')

elif i%2 : a = a + 2; print(f'{a-2} incrementado em 2 = {a}')

else : a = a + 1; print(f'{a-1} incrementado em 1 = {a}')

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo