Bacana sua explicação e quero complementar com o que seria equivalente em python.
Em python não temos do while e nem for each. O próprio for tem um recurso de for each então tudo é for. Quanto ao do while não tem um equivalente, você teria que criar uma função para não repetir muito código e chama-la antes e dentro do while.
Essa não é a única estrutura faltando no python. A linguagem não possui uma estrutura switch case também.
While
i = 10
while i < 10:
código(i)
For
for i in range(0,10):
código(i)
Ou
for i in lista:
código(i)
Um recurso bacana que vale mencionar são as "list comprehensions". É um jeito de alimentar uma lista com uma estrutura de repetição em uma única linha. Olha o exemplo:
lista = [ i for i in range(0,10) ]
O resultado é uma lista com os números de 0 a 9. Essa sintaxe é bem versátil e funciona com dicionários também. Vale uma publicação por si só.