Considere o código escrito em linguagem Python abaixo a = 1...
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 é
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