Estruturas iterativas: Bucles

As estruturas iterativas, compostas por bucles, son aquelas que repiten determinadas accións segundo se den unhas ou outras condicións . As principais estruturas iterativas son:

Repetir mentres (while)

Imaxina un programa que permite introducir un nome de usuario e o seu contrasinal. Estamos afeitos a que ditos programas te permitan equivocarte ao poñer o contrasinal e poidas volver intentalo. Para realizar operacións como esas precisamos de ordes iterativas, é dicir, unha orde faga que o programa non avance ata que consigas introducir o contrasinal. O probema que imos atopar na nosa transición de Scratch a Python é que os comandos que se empregan establecen a condición  repetir de maneira diferente.

Orde Scratch Python
Repetir ata que x=5

 

while x != 5:

    print(‘ola’)

#Fíxate que é xusto o contrario que en Scratch

Repetir mentres a=3

while a == 3:

    print(‘ola’)

#Fíxate que é xusto o contrario que en Scratch

A continuación imos estudar o exemplo do que falabamos: un programa que permita acceder aos datos (ou abra unha porta) cando introduzas ben o contrasinal.

 

Diagrama de fluxo

diagrama fluxo condicional se

Programa en Scratch

 [Scratch: Acceso con contrasinal]

 

 

Programa en Python

 

 

 

Comezo

Repetir dende ...ata (for i... in range())

Esta estrutura permite repetir un número determinado de veces, sen depender dunha condición. Para iso crea unha variable que vai mudando o seu valor, aumentando de un en un ou da cantidade que desexes.

Orde Scratch Python
Repetir 10 veces

for i in range (10):

     print(‘ola’)

#repite as ordes dende i= 0 , 10 veces

 

Repetir dende 2 ata 11 pero contando de 3 en 3

input

for i in range (2,11,3):

    print(i, end=' ')

# E escribirá: 2 5 8

Fagamos un exemplo sinxelo: supoñamos que queremos saber a táboa de multiplicar de calquera número:

Diagrama de fluxo

diagrama fluxo condicional se

Programa en Scratch

 

Programa en Python

 

 

 

Cantas veces itera for i in range (1,3)?
A función range() vai dende o primeiro ata o último número, pero non inclúe o último. For i in range (1,3) itera 2 veces

Comezo

Repetir para sempre (while True)

En Python non existe propiamente unha orde que execute para sempre unha acción, pero podemos conseguir esa repetición empregando while True:.  Unha opción importante coa que debemos contar, ademais, é coa opción de saír dun bucle en calquera momento (neste caso é Scratch quen non o pode facer). Para saír dun bucle empregaremos a orde break

Orde Scratch Python

Repetir para sempre

(ollo cos bucles infinitos!)

scratch

while True:

    print(‘ola’)

#en Python non existe repetir

Saír dun bucle

 

while True:

print ('ola')

break

Como exemplo imos probar cun caso real : un programa que permita acceder aos datos (ou abra unha porta) cando introduzas ben o contrasinal, pero que soamente che de a oportunidade de intentalo 3 veces.

 

Programa en Python

 

 

 

Comezo

Bucles aniñados

 

Que ocorre cando inserimos un bucle dentro doutro bucle?. Imos probar a aniñar dous bucles. Primerio execútase o bucle interior e despois o externo.

 

Orde Scratch Python
Bucle aniñado (repetir unha secuencia dentro doutra secuencia)

 

for a in range (1,6):
for b in range (1,4):
print (a, ' ', b)
print()
 
#Quedaría así:
1   1      
1   2
1   3

2   1
2   2
2   3

3   1
3   2
3   3

4   1
4   2
4   3

5   1
5   2
5   3
     

Volvamos á táboa de multiplicar. Nesta ocasión imos escribir todas as táboas de multiplicar ata un número determinado.

Diagrama de fluxo

 

diagrama fluxo condicional elif

Programa en Scratch

 

Programa en Python

 

 

 

Comezo

Ata aquí as estruturas básicas, nas páxinas que temos a continuación afondaremos nelas e traballaremos con exercicios.

Estruturas secuenciais Estruturas condicionais Estruturas iterativas: Bucles

Fizz Buzz Sumar impares Seleccionar o máximo

Clasificación deportiva Base de datos de temperaturas