Olá Meu querido aluno(a), hoje vamos falar sobre Python. Essa linguagem tem sido cobrada nos mais diversos concursos. E é uma grande tendência porque tem uma grande relação com mineração de dados. Esse assunto também tem aumentado a cada dia a sua importância nas provas. Hoje gostaria de falar sobre os loops em Python. Vamos lá!
Para criar loops em Python, podemos usar uma estrutura while ou uma estrutura for.
No “while”, enquanto a condição for verdadeira o bloco de comandos continuará sendo repetido. Veja o código a seguir:
a=0
while a <=10:
print(a)
a = a + 1
No programa anterior, o que fazemos é imprimir o valor de a e depois somar 1 a essa variável. Esse processo se repete enquanto a <= 10. Assim, a saída impressa por esse programa será:
0
1
2
3
4
5
6
7
8
9
10
Uma outra forma de criar um loop é usando o “for”. No for, uma varável vai assumindo o valor dentro de uma sequência. Por isso, é muito comum usar o for combinado com a função range. A função range gerará a sequência para o for. Podemos escrever o programa anterior (feito com while) da seguinte forma usando o for:
for a in range(11):
print(a)
O resultado será o mesmo. Ou seja, serão impressos os valores de 0 até 10 na tela. Atenção para o uso de : ao final do while e do for.
Vejamos agora algumas questões que estão cobrando esse conceito.
(FGV/Analista do Ministério Público/MPE AL/Administrador de Banco de Dados/2018) Analise o código Python 2.7 a seguir.
L1=[]
L2=[1,2,3,4]
for k in range(3, -4,-1):
L1.append(L2[k])
for x in L:
print x
a) erro de sintaxe.
b) erro de execução.
c) a exibição dos valores 4,3,2,1,4,3,2 nessa ordem.
d) a exibição do valor 4, somente.
e) a exibição dos valores 4,3,2,1 nessa ordem.
Letra B.
A função range(3,-4,-1) irá gerar valores de 3 até -4 (não incluído) com passo de -1. Assim, os valores são: 3,2,1,0,-1,-2,-3.
Assim, no loop são executados os seguinte comandos.
L1.append(L2[3]) = L1.append(4)
L1.append(L2[2]) = L1.append(3)
L1.append(L2[1]) = L1.append(2)
L1.append(L2[0]) = L1.append(1)
L1.append(L2[-1]) = L1.append(4)
L1.append(L2[-2]) = L1.append(3)
L1.append(L2[-3]) = L1.append(2)
Ao final teremos L1 = [4, 3, 2, 1, 4, 3, 2]
O último for varre x em uma variável L. Contudo, essa variável não foi criada o que existe é L1 e L2. Python verifica a sintaxe antes de interpretar o programa. Assim, há um erro de sintaxe que impede a execução. A questão deveria ter sido anulada, pois há duas repostas corretas. Contudo, a letra B foi considerada como a resposta.
(FGV/Analista/ALERO/2018)Analise o código Python a seguir.
L1 = [10,12,13,14,15,18,20]
L2 = [10,12,14,18,21]
for k in range(-1, -len(L1), -1):
if L1[k] in L2[-5:-2]:
print L1[k]
O comando de execução desse código produz
a) erro de sintaxe.
b) erro de execução.
c) a exibição do número 12 somente.
d) a exibição de dois números, 14 e 12, nessa ordem.
e) a exibição de três números, 18, 12 e 10, nessa ordem.
Letra D
A função len(L1) devolve o tamanho de L1, ou seja, 7. Assim, a função range (-1,-len(L1), -1) é range (-1,-7,-1). Essa função gera o intervalo com valores: -1,-2,-3,-4,-5,-6
O L2[-5:-2] gera a lista L2[-5], L2[-4], L2[-3] = (10,12,14)
O valor de L1 será impresso se estiver nessa lista anterior. Os valores de L1 são L1[-1], L2[-2], L3[-3], L4[-4], L5[-5] e L6[-6] = (20,18,15,14,13,12). Assim, serão impressos os valores 14 e 12.
(FGV/Analista/ALERO/Banco de Dados/2018) Analise o código Python a seguir.
L=[1]
while len(L) < 6:
L.append(L[-1]*len(L))
print L
Assinale o que acontece com esse código quando o comando Run Module (F5) é acionado na interface IDLE (Python GUI).
a) Os valores [1, 2, 3, 4, 5, 6] são exibidos.
b) Os valores [1, 2, 2, 4, 8, 32] são exibidos.
c) Os valores [1, 1, 2, 6, 24, 120] são exibidos.
d) Um erro de compilação.
e) Um erro de execução.
Letra C
Enquanto o tamanho da lista for menor que 6 (len (L) < 6), será adicionado a lista o valor L[-1]*len(L). Ou seja, o último elemento multiplicado pelo tamanho da lista. Assim, temos:
L=[1]
adiciona L[-1]*1 = 1*1 = 1
L=[1,1]
adiciona L[-1]*2 = 1*2 = 2
L=[1,1,2]
adiciona L[-1]*3 = 2*3 = 6
L=[1,1,2, 6]
adiciona L[-1]*4 = 6*4 = 24
L=[1,1,2, 6, 24]
adiciona L[-1]*5 = 24*5 = 120
Como len(L) = 6, o loop encerra e saída será: L=[1,1,2, 6, 24, 120]
(FGV/Analista/ALERO/2018) Analise o código Pyhton a seguir.
for k in range(0, 4, -1):
print k
Assinale a opção que indica o número de valores printados na execução desse código.
a) Zero.
b) Um.
c) Dois.
d) Quatro.
e) Cinco.
Letra A.
A função range(0,4,-1) irá gerar uma lista que inicia em 0 até o valor 4 (não incluído) usando um incremento (passo) de valor -1. Contudo, não é possível chegar em 4 usando esse passo negativo. Logo, a lista será vazia. E nenhum valor será mostrado na tela.
(VUNESP/Técnico/TJM SP/2017) Considere o seguinte código no Python 3.5:
x = range(10)
O tipo da variável “x”, após a execução do código, é
a) classe ‘set’.
b) classe ‘tuple’.
c) classe ‘list’.
d) classe ‘range’.
e) classe ‘iter’.
Letra D
A função range irá criar um objeto do tipo range que armazena uma lista de números. Um range é uma lista imutável de números, geralmente usada em loops. Portanto, letra D.
Os tipos list e tuple também são tipos de sequência. Eles podem armazenas tipos heterogêneos de dados. Uma tupla é uma sequência imutável. Já uma lista é mutável.