Google+ Seguidores

viernes, 21 de junio de 2013

Ejercicios en python (Parte 3)

ejercicios python
Ejercicios en python (parte 3)
Buenas, hoy voy a dejar algunos ejercicios mas para python y asi entretenernos un buen rato el fin de semana.

Ejercicio 1
Diseñar un sistema de puntos para el juego El reino del dragón:
Dejo el enlace por si alguien no lo vio.
La idea es la siguiente: mientras el jugador vaya ganando, ira acumulando puntos.
Ejemplo: Si el jugador entra en la primera cueva y gana el tesoro, se le acreditan 100 puntos, entra en la segunda cueva y gana el tesoro, se le acreditan otros 100 puntos. Si el jugador pierde, saldrá en pantalla el total de los puntos que realizo y la opción de empezar de nuevo.

Ejercicio 2
Escribe un programa que te permita jugar a una versión simplificada del juego Master Mind. El juego consistirá en adivinar una cadena de números distintos. Al principio, el programa debe pedir la longitud de la cadena (de 2 a 9 cifras). Después el programa debe ir pidiendo que intentes adivinar la cadena de números. En cada intento, el programa informará de cuántos números han sido acertados (el programa considerará que se ha acertado un número si coincide el valor y la posición).

Dime la longitud de la cadena: 4
Intenta adivinar la cadena: 1234
Con 1234 has adivinado 1 valores. Intenta adivinar la cadena: 1243
Con 1243 has adivinado 0 valores. Intenta adivinar la cadena: 1432
Con 1432 has adivinado 2 valores. Intenta adivinar la cadena: 2431
Con 2431 has adivinado 4 valores. Felicidades

Ejercicio 3
Escribe un programa que pida dos palabras y diga si riman o no. Si coinciden las tres últimas letras tiene que decir que riman. Si coinciden sólo las dos últimas tiene que decir que riman un poco y si no, que no riman.

Ejercicio 4
Has un programa que pida al usuario una cantidad de dolares, una tasa de interés y un numero de años. Muestra por pantalla en cuanto se habrá convertido el capital inicial transcurridos esos años si cada año se aplica la tasa de interés introducida.
Recordar que un capital C dolares a un interés del x por cien durante n años se convierte en C * (1 + x/100)elevado a n (años). Probar el programa sabiendo que una cantidad de 10000 dolares al 4.5% de interés anual se convierte en 24117.14 dolares al cabo de 20 años.

En cuanto tenga las soluciones publicare la entrada y actualizare esta con el enlace a las mismas.

Saludos y buen fin de semana...

24 comentarios :
Write comentarios
  1. Para el sistema de puntos: aqui esta mi solucion puse los puntos mas aleatorio entre 50 y 200 puntos asi me parecio mas dinamico el juego. Dejo elCODE:

    #! /usr/bin/env python
    # -*- coding: utf-8 -*-

    #Reino del Dragon....
    import random
    import time

    def introduccion():
    print ("Estamos en una tierra llena de dragones. Delante de nuestro,")
    print ("se ven dos cuevas. En una cueva, el dragon es amigable")
    print ("y compartira el tesoro contigo. El otro dragon")
    print ("es codicioso y hambriento, y te va a comer ni bien te vea.")
    print ("")

    def CambiarCueva():
    cueva = ""
    while cueva != "1" and cueva != "2":
    print ("Ha que cueva quieres entrar? 1 o 2?")
    cueva = raw_input()

    return cueva


    newgame = ("s")
    oro = 0

    while newgame == ("s"):

    NumdelaCueva = CambiarCueva()

    print ("Te acercas a la Cueva...")
    time.sleep(2)
    print ("Esta oscuro y tenebroso...")
    time.sleep(2)
    print ("Un gran dragon salta delante tuyo, abre su boca y...")
    print ("")
    time.sleep(2)

    FriendlyCueva = random.randint (1, 2)
    print "la cueba es", FriendlyCueva

    if NumdelaCueva == str(FriendlyCueva):
    print ("Te entrega el tesoro...")
    cofre = random.randint(50, 200)
    print "Has ganado ", cofre, "en oro"
    oro += cofre
    else:
    print ("El dragon te come de un bocado....")
    print "Perdiste!!\n Oro acomulado:", oro
    newgame = raw_input("Quieres jugar de nuevo? (s / n)")
    oro = 0

    ResponderEliminar
  2. Respuestas
    1. Aquí están los ejercicios resueltos de esta entrega: http://www.pythondiario.com/2013/08/ejercicios-resueltos-en-python-parte-3.html

      Saludos

      Eliminar
  3. hola amigos
    pueden ayudarme a generar fechas de equipos de futbol, como las genero los enfrentamiento y eso desde ya muchas gracias

    ResponderEliminar
  4. Un capital de C euros a un interés del x por cien anual durante n años se convierte en

    C · (1 + x/100)n euros.

    Diseña un programa Python que solicite la cantidad C y el interés x y calcule el capital final sólo si x es una cantidad positiva.
    quisiera saber como resorlverlo

    ResponderEliminar
    Respuestas
    1. def taza():
      c = input()
      x = input()
      n = input()
      t =c * ( 1+x/100)**n
      print(t)
      taza()

      Eliminar
  5. Hola, podrias hacer una version simplificada de el juego "ludo"? Gracias

    ResponderEliminar
  6. Hola, podrias hacer una version simplificada de el juego "ludo"? Gracias

    ResponderEliminar
  7. Esta es mi versión del ejercicio tres:

    palabra1 = raw_input("Introduzca una palabra: ")
    palabra2 = raw_input("Introduzca otra palabra: ")
    print ""

    lista1 = list(palabra1)
    lista2 = list(palabra2)

    borrado1 = len(palabra1) - 3
    borrado2 = len(palabra2) - 3

    l1 = lista1[borrado1::]
    l2 = lista2[borrado2::]

    while True:
    >>> if l1 == l2:
    >>>>>> if len(l1) == 3:
    >>>>>>>>> print "Riman"
    >>>>>>>>> break
    >>>>>> elif len(l1) == 2:
    >>>>>>>>> print "Riman un poco"
    >>>>>>>>> break
    >>>>>> else:
    >>>>>>>>> print "No riman"
    >>>>>>>>> break
    >>> else:
    >>>>>> l1.pop(0)
    >>>>>> l2.pop(0)

    ResponderEliminar
    Respuestas
    1. Esta muy bien... pero, a modo de ahorro de código xD, mira esta:

      (utilicé .reverse() para solucionarlo ;))

      def Riman():
      ----Palabra1=list(raw_input("Ingrese la primera palabra:"))
      ----Palabra2=list(raw_input("ingrese la palabra a rimar:")
      ----Palabra1.reverse()
      ----Palabra2.reverse()
      ----if Palabra1[0:3] == Palabra2[0:3]:
      --------print "Sí riman"
      ----elif Palabra1[0:2] == Palabra2[0:2]
      --------print "Riman un poco"
      ----else:
      --------print "no riman"

      Soy nuevo :'), este tutorial sirve de maravillas :D

      Eliminar
  8. Y otra manera de hacer el ejercicio tres similar al anterior:

    palabra1 = raw_input("Introduzca una palabra: ")
    palabra2 = raw_input("Introduzca otra palabra: ")
    print ""

    lista_palabra = list(palabra1)
    rima = lista_palabra[len(lista_palabra) - 3::]

    while True:
    >>>/ if palabra2.endswith("".join(rima)) == True:
    >>>/>>>/ if len(rima) == 3:
    >>>/>>>/>>>/ print "Riman"
    >>>/>>>/>>>/ break
    >>>/>>>/ elif len(rima) == 2:
    >>>/>>>/>>>/ print "Riman un poco"
    >>>/>>>/>>>/ break
    >>>/>>>/ else:
    >>>/>>>/>>>/ print "No riman"
    >>>/>>>/>>>/ break
    >>>/ else:
    >>>/>>>/ rima.pop(0)

    ResponderEliminar
  9. Esta es mi solución a Master Mind, indentado de un ">", si se usa windows se cambia el "clear" del os.system("clear") por "cls", quedaría de esta manera: os.system("cls")

    import random, os, time

    def master_mind(longitud):
    > lista_cadena = []
    > for numero in range(1, longitud + 1):
    >> lista_cadena.insert(random.randint(0,4), str(numero))
    > cadena = "".join(lista_cadena)

    > indice = range(0, longitud)

    > while True:
    >> ingresado = raw_input("Intenta adividar la cadena: ")
    >> print ""
    >> valor = 0

    >> for num in indice:
    >>> if cadena[num] == ingresado[num]:
    >>>> valor += 1

    >> if valor != longitud:
    >>> print "Con %s has adivinado %d valores." % (ingresado, valor)
    >> else:
    >>> os.system("clear")
    >>> print "Con %s has adivinado %d valores. Felicidades!" % (ingresado, valor)
    >>> print "Para salir escriba 'salir' en 'longitud de cadena'"
    >>> return True
    while True:
    > try:
    >> os.system("clear")
    >> largo = raw_input("Dime la longitud de la cadena: ")

    >> if largo == "salir":
    >>> break
    >> else:
    >>> largo = int(largo)

    >> if master_mind(largo) == True:
    >>> time.sleep(5)
    >>> continue
    > except:
    >> os.system("clear")
    >> print "Ha ocurrido un error, intente de nuevo"
    >> time.sleep(3)
    >> os.system("clear")

    ResponderEliminar
  10. Alguien puede ayudarme con un programa

    ResponderEliminar
  11. Alguien me puede ayudar:
    Crear un programa que permita ingresar un conjunto de n nombres en una lista y que esta se ordene alfabéticamente.

    ResponderEliminar
  12. Hola buenas:

    Vaya tarde de python me he metido, he hecho todos tus ejercicios hoy xD.

    Solo añadir que como yo estoy en python 3 he tenido que modificar lo del raw_input()

    Vamos en orden, el primero es para mi asi:

    #Reino del Dragon....
    import random
    import time
    oro=0
    comprueba=""
    def introduccion():
    print ("Estamos en una tierra llena de dragones. Delante de nuestro,")
    print ("se ven dos cuevas. En una cueva, el dragon es amigable")
    print ("y compartira el tesoro contigo. El otro dragon")
    print ("es codicioso y hambriento, y te va a comer ni bien te vea.")
    print ("")

    def CambiarCueva():
    cueva = ""
    while cueva != "1" and cueva != "2":
    print ("Ha que cueva quieres entrar? 1 o 2?")
    cueva=input()

    return cueva

    def cheqcueva(CambiarCueva):

    vida=""
    print ("Te acercas a la Cueva...")
    time.sleep(2)
    print ("Esta oscuro y tenebroso...")
    time.sleep(2)
    print ("Un gran dragon salta delante tuyo, abre su boca y...")
    print ("")
    time.sleep(2)

    FriendlyCueva = random.randint (1, 2)

    if CambiarCueva == str(FriendlyCueva):
    print ("Te entrega el tesoro...")
    vida="S"
    return vida

    else:
    print ("El dragon te come de un bocado....")
    vida="N"
    return vida


    EmpezarNuevo = ("si")



    while EmpezarNuevo == ("s") or EmpezarNuevo == ("si"):


    introduccion()

    NumCaverna = CambiarCueva()

    comprueba=cheqcueva(NumCaverna)
    if comprueba=="S":
    oro=oro+100
    print("Tu tesoro de momento es de", oro, "monedas.")
    else:
    print("Tu tesoro ha sido de", oro, "monedas.")
    oro=0


    print ("Quieres jugar de nuevo? (si o no)")
    EmpezarNuevo =input()

    ResponderEliminar
  13. El segundo ejercicio sería:

    '''Escribe un programa que te permita jugar a una versión simplificada del juego Master Mind.
    El juego consistirá en adivinar una cadena de números distintos.
    Al principio, el programa debe pedir la longitud de la cadena (de 2 a 9 cifras).
    Después el programa debe ir pidiendo que intentes adivinar la cadena de números.
    En cada intento, el programa informará de cuántos números han sido acertados
    (el programa considerará que se ha acertado un número si coincide el valor y la posición).'''

    import random

    print("Vamos a jugar a MasterMind")
    print("--------------------------")

    print("¿No sabes jugar? Permiteme que te de una clase muy rápida.\n"
    "Yo pensaré un número de cuatro letras y tu tendrás que adivinarlo,\n"
    "cada vez que me digas un número yo te diré cuantos digitos en comun\ntiene con el que yo he pensado\n\n")

    #print(random.randrange(1000,10000))



    salida=0 #la usaremos para salir de los bucles
    contador=0 #evidentemente es para contar los intentos
    valor=0 #esto es para contar cuantas llevamos acertadas.
    molde="1" #la usamos para hacer el calculador de random, como es un 1 seguido de X ceros...
    rango=molde
    comprobador=0 #Para comprobar que se cumplen condiciones y salir de esos bucles.

    while comprobador==0: #Este bucle es para introducir la longitud del juego
    longitud=int(input("Introduce cuantos caracteres quieres que tenga el número a adivinar (Max:10/MIN:2) "))

    if longitud>10 or longitud<2:
    print("El número introducido debe estar comprendido entre 10 y 2")
    else:
    comprobador=1

    for i in range(1,longitud): #Con esto le añadimos los ceros correspondientes al randrange, necesitamos eso si que rango sea texto.
    rango+="0"

    rango=int(rango) #convertimos rango a número.

    codigo=str(random.randrange(rango,rango*10)) #Generamos el aleatorio

    print("Has elegido un número de", longitud, "cifras.")

    while salida==0: #El gran bucle que lo controla todo bajo su poder.
    comprobador=0
    contador=contador+1
    valor=0

    while comprobador==0: #Este bucle se asegura que metes un número con las mismas cifras que la longitud

    usuario=input("Introduce un número de esas cifras ------> ")

    if len(usuario)!=len(codigo):
    print("Tienes que meter un número de ", len(codigo), "dígitos.")
    else:
    comprobador=1


    for i in range(len(codigo)): #Esto comprueba el código para indicar los aciertos.
    if codigo[i]==usuario[i]:
    valor+=1


    if valor==len(codigo): #Esta batería de condicionales nos muestra un mensaje relacionado con nuestros aciertos y si es total da la salida al bucle.
    print("Enhorabuena, has acertado los", valor)
    print("Solo has tardado", contador, "intentos")
    salida=1
    elif valor==len(codigo)-1:
    print("Que poquito te queda, has acertado", valor)
    elif valor==len(codigo)-2:
    print("Esa es la buena senda, has acertado", valor)
    else:
    print("Vas bastante mal, solo has acertado", valor)



    print("Este es tu", contador, "intento.") #Pues nada, mostrar cuantos intentos.

    if salida==0:
    salir=input("¿Quieres salir del programa? S / N ----------> ").upper() #Una salida por si la cosa se eterniza.
    else:
    salir="S"

    if salir=="S":
    salida=1








    ResponderEliminar
  14. El de las palabras que riman me ha quedado asi:

    def rimon(palabra1, palabra2):
    cuentapalabra1=len(palabra1)
    cuentapalabra2=len(palabra2)
    contador=0
    cuentaletras=0
    max=0

    if cuentapalabra2<cuentapalabra1:
    max=cuentapalabra1
    else:
    max=cuentapalabra2


    for i in range(0,3):
    cuentaletras-=1
    if palabra1[cuentapalabra1+cuentaletras]==palabra2[cuentapalabra2+cuentaletras]:
    contador+=1


    if contador==3:
    print("Las palabras riman bien")
    elif contador==2:
    print("Las palabras riman un poco")
    else:
    print("Las palabras no riman nada de nada")



    rimon(input("Introduce una palabra ").upper(),input("Ahora introduce otra y veamos si riman ").upper())

    ResponderEliminar
  15. Y por último el que me ha parecido más sencillito, el del interes me ha quedado asi:

    def calculadora (capital, interes, tiempo):
    print(capital*(1+(interes/100))**tiempo)

    calculadora(int(input("Introduce un capital ")),
    float(input("Introduce la tasa de interes ")),
    int(input("Introduce un número de años ")))



    Me gustaría aprovechar para darte las gracias por estos ejercicios, estoy haciendolos todos y a partir de ahora los comentaré por aqui.

    Como estoy empezando en esto me resultan super útiles.

    ResponderEliminar
    Respuestas
    1. Excelente Arguez!!!
      Muy buen trabajo, Saludos y a seguir aprendiendo

      Eliminar
  16. Mi solución del MasteR Mind:

    import random

    def longitud_de_cadena():
    longitud=0
    while longitud<2 or longitud>9:
    longitud=int(input("Dime la longitud de la cadena: "))
    return longitud

    def generar_cadena(longitud):
    cadena={}
    for i in range(0,longitud):
    cadena[str(random.randint(0,9))]="oculto"
    return cadena
    def advinar_cadena(cadena):
    aciertos=0
    while aciertos!=len(cadena):
    msg=0
    i=0
    intento=input("Intenta adivinar la cadena: ")
    for clave,valor in cadena.items():
    if clave==intento[i]:
    if cadena[clave]=="oculto":
    cadena[clave]="descubierto"
    aciertos=aciertos+1
    #print("Acertaste con: "+clave)
    msg=aciertos
    else:
    msg=0
    i=i+1
    print("Con "+intento+" has adivinado "+str(msg)+" valores")
    print("Felicidades")




    nueva_longitud=longitud_de_cadena()
    nueva_Cadena=generar_cadena(nueva_longitud)
    advinar_cadena(nueva_Cadena)

    ResponderEliminar
  17. El de las que riman me ha quedado así:
    palabra1=input("Ingrese la primera palabra: ")
    palabra2=input("Ingrese la segunda palabra: ")

    def riman(palabra1,palabra2):
    msg="No riman"

    if palabra1[-1]==palabra2[-1] and palabra1[-2]==palabra2[-2]:
    msg="Riman un poco"
    if palabra1[-1]==palabra2[-1] and palabra1[-2]==palabra2[-2] and palabra1[-3]==palabra2[-3]:
    msg="Riman"
    return msg


    print(riman(palabra1,palabra2))

    ResponderEliminar

Tu comentario es importante y nos motiva a seguir escribiendo...

Powered by Blogger .