Olá, Bruno! Bom dia!
Bom, em C, na realidade, o limite de um loop é dado pelo fechamento do bloco, ao final da chave, e no Python funciona da exata mesma forma (quase).
Em python, os blocos são delimitados pela identação (4 espaços seguidos), e não por chaves, mas é desse modo que o Python sabe quando um bloco começa ou termina, seja ele um laço, uma condicional, definição de função, ou de classe, e isso tudo é avaliado em tempo de "compilação" (antes do python ser executado).
Não entendi a pergunta de como posso forçar uma região diferente de loop?
, caso possa explicar melhor o que quis dizer, ficarei feliz em tirar sua dúvida.
Caso você precise colocar uma condicional dentro de outra, você fará da mesma forma, adicionando mais identações, como por exemplo:
if a == 5:
print(a)
if b == 31:
for i in a:
print('vermelho', i)
elif a > 10:
print('grande')
else:
print('jabuticaba')
Em C, isso seria algo como (meu C está enferrujado, mas é algo assim):
if (a == 5) {
printf("%d", a)
if (b == 31) {
for (int i = 0; i < a; i++) {
printf("vermelho %d", i)
}
}
}
else {
if (a > 10) {
printf("grande")
}
else {
printf("jabuticaba")
}
}
Talvez tenha algum erro nesse C, mas é algo do gênero.
Caso tenha mais dúvidas, fico feliz em ajudar.