Assim como podemos ter condições aninhadas com vários comandos if e else aninhados, podemos também ter loops for e while aninhados.
Podemos iterar sobre o tempo em um dia iterando sobre horas, minutos e segundos:
for h in range(24):
for m in range(60):
for s in range(60):
print(f'Time: {h}:{m}:{s}')
O output do programa será todos os possíveis horários do dia, como demonstrado à direita.
O loop for começa com h = 0, então usa m = 0, depois itera sobre todos os segundos de 0 a 59, e imprime o horário.
Em seguida, o programa define m = 1 e itera sobre todos os segundos. Então define m = 2 e repete este processo até chegar em m = 59. Nesse ponto, o programa termina o segundo loop e h se torna 1. Então, todo o processo de iterar sobre minutos e segundos para h = 1 se repete novamente. h então se torna 2, depois 3, e o ciclo continua até que h alcance 23, m alcance 59 e s alcance 59. Isso encerra os 3 loops juntos.
Para cada linha i, imprimimos com um loop interno de j in range(i + 1). O símbolo é determinado com base na posição.
Desafio
Inspirado por jogos em 2D, você gostaria de experimentar imprimir algumas formas. Você quer imprimir um triângulo de altura n e largura n, onde para cada posição, o símbolo impresso será e se a soma de sua linha e coluna for par e o se a soma for ímpar.
Note que as linhas e colunas começam a contar a partir de 1.
Entrada
Saída
10
e
oe
eoe
oeoe
eoeoe
oeoeoe
eoeoeoe
oeoeoeoe
eoeoeoeoe
oeoeoeoeoe