Control de flujo

De WikiEducator
Saltar a: navegación, buscar






Decisiones

Lógica booleana

>>> True and True
True
>>> False and False
False
>>> False and True
False
>>> True or True
True
>>> True or False
True
>>> False or False
False
>>> not True
False
>>> not False
True
>>> 10 > 4
True
>>> 4 > 4
False
>>> 4 >= 4
True
>>> 4 == 4
True
>>> 4 != 4
False
>>> 4 > 2 and 5 > 3
True
>>> 4 > 2 and 5 < 3
False
>>> 4 > 2 or 5 < 3
True
>>> 'A' < 'B'
True

Composiciones condicionales

edad = 15
# if
if edad < 16:
    print "No puedes trabajar"
 
# if con otra comprobación ..
if edad >= 16:
    print "Ya puedes trabajar"
 
# if .. else
if edad < 16:
    print "No puedes trabajar"
else:
    print "Ya puedes trabajar"
 
# if .. elif .. else
if edad < 16:
    print "No puedes trabajar"
elif edad < 65:
    print "Ya puedes trabajar"
else:
    print "Ya has trabajado demasiado"


Actividad

Icon activity.jpg

Actividad

  1. Crea un programa que tiene una palabra oculta. El programa pregunta la contraseña al jugador, si la adivina muestra un mensaje de éxito. Si no, muestra el error.
  2. Una tienda hace un descuento del 10% por compras menores de 20€, un 20% por compras entre 20 y 50€ y un 25% si la compra es mayor. Escribe un programa que pida el precio de un producto y muestre su precio final en las rebajas.
  3. El ordenador de nuestro coche calcula los kilómetros que nos quedan antes de repostar. Crea un programa que pida: tamaño del depósito (en litros), porcentaje del depósito que está lleno y litros de consumo por 100kms. El programa mostrará los kilómetros que quedan de autonomía. Si quedan menos de 30 kilómetros mostrará un aviso de que hay que repostar porque estamos usando la reserva.
  4. Un año es bisiesto si es divisible entre 4, excepto el último de cada siglo (aquel divisible por 100), salvo que este último sea divisible por 400 (http://es.wikipedia.org/wiki/A%C3%B1o_bisiesto). Haz un programa que pida un año y muestre un mensaje de si es o no bisiesto.
  5. Escribe un programa que pida el ph de una solución y muestre el mensaje de si la solución es ácida (ph < 7.0) o peligrósamente ácida: ph < 3.0)





Bucles

Ejemplos

>>> for numero in [1,2, 3]:
	print numero
1
2
3
>>> for letra in 'casa':
	print letra
c
a
s
a
>>> for num in range(10):
	print num
0
1
2
3
[...]
>>> for num in range(10):
	print num, num**2, num**3
 
 
0 0 0
1 1 1
2 4 8
3 9 27
4 16 64
[...]
 
>>> secreto = 5
>>> opcion = int(raw_input('> '))
>>> while opcion != secreto:
	print 'Has fallado'
	opcion = int(raw_input('> '))
 
>>> inicio = 1
>>> while inicio <= 10:
	print inicio
	inicio += 1


Actividad

Icon activity.jpg

Actividad

  1. Escribe un programa que pida un número y escriba su tabla de multiplicar. Haz dos versiones: una con range y otra con while.
  2. Escribe un programa que muestre los número entre 50 y 40 (incluidos) en orden descendente.
  3. Escribe un programa que pida un número y muestre un mensaje si el número es un número primo (http://es.wikipedia.org/wiki/N%C3%BAmero_primo)
  4. Escribe un programa que pida al usuario una contraseña (usa la palabra oculta que quieras). El programa volverá a pedir la contraseña hasta que la adivine el jugador.
    • Modifica el programa. Haz que el programa permita un máximo de 5 intentos. Si a los 5 intentos no ha introducido bien la contraseña, mostrará el mensaje de error y terminará.
  5. Escribe un programa que cree estas figuras:
*
**
***
****
   *
  **
 ***
****
   *
  ***
 *****
*******





Más ejercicios

Icon inter.gif

Más ejercicios



Juego adivinar número

Icon assess.gif

Juego adivinar número

Vamos a crear el juego de adivinar un número. El programa selecciona de forma aleatoria un número del 1 al 100 que el jugador tendrá que adivinar. El programa irá preguntando un número al jugador. Si el jugador dice uno mayor, el programa le informará de que el número oculto es menor (y al revés si dice uno menor). El jugador tiene 10 oportunidades para adivinar el número.

  • Crea un nuevo proyecto para este programa en tu repositorio.
  • Dale una interfaz gráfica con easygui. Incluye alguna imagen en las ventanas.
  • Escribe comentarios en el código que ayuden a otro programador a modificar el programa.
  • Puedes crear diferentes niveles en el juego dando menos oportunidades, contando el tiempo, etc

Ayudas

import random
random.randint(1, 10) # devuelve un entero del 1 al 10
 
# para calcular diferencias de segundos (para saber el tiempo que lleva jugando el jugador ...)
from datetime import datetime
x = datetime.now()
y = datetime.now()
z = y - z
z.seconds