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...

  1. Ramon Caraballo dice:

    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

  2. Unknown dice:

    hay parte 2? xd

    1. PythonDiario dice:

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

      Saludos

  3. Unknown dice:

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

    1. PythonDiario dice:

      Hola, no entiendo tu consulta.

  4. Anónimo dice:

    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

    1. Unknown dice:

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

  5. Anónimo dice:

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

  6. Anónimo dice:

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

  7. Anónimo dice:

    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)

    1. PythonDiario dice:

      Excelente!!!

    2. Anónimo dice:

      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 😀

  8. Anónimo dice:

    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)

  9. Anónimo dice:

    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")

    1. PythonDiario dice:

      Muy bueno 😉 Saludos

  10. Unknown dice:

    Alguien puede ayudarme con un programa

  11. Anónimo dice:

    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.

  12. Arguez dice:

    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()

  13. Arguez dice:

    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 comunntiene con el que yo he pensadonn")

    #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

  14. Arguez dice:

    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())

  15. Arguez dice:

    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.

    1. PythonDiario dice:

      Excelente Arguez!!!
      Muy buen trabajo, Saludos y a seguir aprendiendo

  16. Unknown dice:

    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)

  17. Unknown dice:

    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))

  18. Alejo Lopez dice:

    print ("Programa para verificar si dos palabras riman o no.")

    def rima():
    uno=input("Ingresa la primera palabra: ")
    dos=input("Ingresa la segunda palabra: ")
    if len(uno)<3 or len(dos)<3:
    print("Una de las palabras tiene menos de 3 caracteres.")
    elif uno[-3:]==dos[-3:]:
    print("Las dos palabras riman.")
    elif uno[-2:]==dos[-2:]:
    print("Las dos palabras riman un poco")
    else:
    print("No riman un qlo")

    rima()

  19. Alejo Lopez dice:

    print("Ejercicio 4")
    print("")
    print("Calculadora de interes anual")

    def calcular():
    c = int(input("Ingresa un capital inicial: "))
    x = float(input("Ingresa una tasa de interes anual: "))
    n = int(input("Ingresa una cantidad de años para el calculo: "))

    print(c*(1+x/100)**n)

    calcular()

  20. Javier Fiestas Botella dice:

    print("Ejercicio 3")
    palabra1=input("dime una palabra ")
    palabra2=input("dime un segunda palabra ")
    if palabra1[-3]==palabra2[-3]:
    print("riman")
    elif palabra1[-2]==palabra2[-2]:

    print("riman un poco")
    else:
    print("estas palabras no riman")

  21. Unknown dice:

    Otra forma de hacer el Master Mind

    import random

    def entrada():
    lg = int(input("Dime la longitud de la cadena, este debe contener de 2 a 9 cifras: "))
    return lg

    def EvaluaRandom(cadena, num):
    ig=0
    for x in cadena:
    if x == str(num):
    ig =1
    return ig

    def LenCadena(cadena):
    cont = 0
    for i in cadena:
    cont = cont + 1
    return cont

    def Evalua_cadena(cadena, PCad):
    coincide = 0

    for i in range(LenCadena(cadena)):
    if PCad[i] == cadena[i]:
    coincide +=1
    return coincide

    jugar = input("Desea jugar Master Mind: ")

    while jugar == "s" or jugar == "Si" or jugar == "S" or jugar == "SI":

    long = entrada()
    cadena=""
    i=1
    cant_coin = 0

    while i <= long:
    num= random.randint(0,9)

    if i == 1:
    cadena+= str(num)
    else:
    igual= EvaluaRandom(cadena, num)

    while igual == 1:
    num= random.randint(0,9)
    igual= EvaluaRandom(cadena, num)

    if igual == 0:
    cadena+= str(num)

    i+=1
    #print(cadena)
    PCad = str(input("Intenta adivinar la cadena: "))
    cant_coin = Evalua_cadena(cadena, PCad)

    while cant_coin != long:
    PCad = input("Con {} has adivinado {} valores. Intenta adivinar la cadena: ".format(PCad,cant_coin))
    cant_coin = Evalua_cadena(cadena, PCad)

    if cant_coin == long:
    print("Con {} has adivinado {} valores. FELICIDADES".format(PCad,cant_coin))

    jugar = input("Quieres seguir jugando (s/n): ")

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir
White Monkey