Ejercicios resueltos en python (Parte 3)
Ejercicios resueltos en python |
Después de estar un tiempo sin conexión a internet y estar de mudanza, vuelvo con las soluciones a los 4 ejercicios propuestos ya hace un tiempo: Ejercicios en python (Parte 3).. Como he dicho en otras entradas, pueden haber distintas formas de resolver los ejercicios. El ejercicio 1 fue realizado por Ramón Caraballo, dejó su solución como respuesta en la entrada anterior.
Ejercicio 1
Me ha gustado mucho la forma en que Ramón ha dado el sistema de puntos para el juego del Reino del Dragón.
#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!!nOro acomulado:", oro
newgame = raw_input("Quieres jugar de nuevo? (s / n)")
oro = 0
Ejercicio 3
#!/usr/bin/env python
# -*- coding: utf-8 -*-
uno = raw_input ("Dime la primera palabra: ")
print ""
dos = raw_input ("Dime la segunda palabra: ")
print ""
if len(uno) < 3 or len(dos) < 3:
print "Las palabras tienen menos de 3 letras"
print ""
elif uno[-3:] == dos[-3:]:
print "Riman"
print ""
elif uno[-2:] == dos[-2:]:
print "Riman un poco"
print ""
else:
print "No riman"
print ""
Ejercicio 4
#!/usr/bin/env python
# -*- coding: utf-8 -*-
def main():
dolares = input ("Cuantos dolares: ")
interes = input ("Cuanto interes: ")
interes = float(interes)
anos = input ("Cantidad de años: ")
print ""
resultado = calculo (dolares, interes, anos)
print "Cuando pasen", anos, u"años, con un", interes, u"de interes, usted habrá generado", resultado, "dolares."
def calculo (dinero, inte, cant_anos):
x =dinero * ((1 + inte/100) **cant_anos)
return x
main()
No olviden dejar sus comentarios por dudas o sugerencias. Saludos
-
-
Hola, como estas? Puedes usar todo con raw_input() si quieres y luego convertir el resultado. raw_input() se utiliza cuando esperamos que el usuario ingrese caracteres y input() cuando esperamos que el usuario ingrese números.
Igual lo puedes hacer de esta manera:
numero = raw_input()
y luego convertirlo si sabemos que esperamos un entero:
numero = int(numero)
Errar es humano y aveces por mas que pidamos un número puede que recibamos una letra (la cual arrojará error si no tenemos en cuanta estos puntos.Tu segunda consulta: tendrías que profundizar un poco con las funciones. Pronto subiré algún material sobre funciones para aclarar el tema.
Saludos
-
-
Hola!, tengo una duda después que pongo los ejercicios en python, no se como compilarlo y ponerlo a correr! soy nuevo y me interesa muchísimo la programación en python!
-
Hola, estaría bueno saber en que entorno de desarrollo estas trabajando para poder ayudarte. Saludos
-
-
Hola, tengo una duda en el ejercicio 2, yo entiendo casi todo el código pero no comprendo a que hace referencia esta parte: if aleat[a] == elecc[b]
Me refiero a aleat[a] y a elecc[b]
Para que se utilizan esos corchetes?
Gracias por la ayuda
-
Hola Jesus, en realidad hace mucho que hice el ejercicio y hoy en día le haría muchas modificaciones. Te explico: a = 0 y b = 0 por lo tanto lo que hace la cadena aleat[a] == elecc[b] es comparar el primer el elemento de la cadena elegida con el primer elemento del elemento aleatorio. Luego a y b suman 1 y por lo tanto se compara el siguiente elemento. No se si me explique bien, cualquier consulta me escribís. Saludos
-
Listo ya te entendi, muchas gracias por tus ejercicios me han venido muy bien para aprender a programar en python 🙂 Saludos desde Venezuela
-
-
def master_mind():
import random #llamo al modulo random
longitud = int(raw_input("Elige cuantos digitos quieres que tenga el numero (min 1 - max 9)"))
#le pido al usuario una longitud de la cadena y la guardo en una variablerango = int(raw_input("Indica el rango de cada digito de la cadena (min 1 - max 9)"))
#le pido al usuario un rango (hasta que número quiere que llegue cada cifra)numero_oculto = "" #una cadena vacia donde añadire cada numero que creo al azar hasta tener la cifra que se deberá adivinar
for i in range(longitud): #un bucle for que en cada iteracion creara un numero al azar y lo añadira al numero oculto
numero_oculto+=str(random.randrange(1,(rango+1)))numero_pedido = "" #una variable vacía en la que posteriormente guardare el numero que introduzca el usuario
intentos = 0 #un contador para los intentos
oportunidades = 5#otro contador para las oportunidades que se irá restando cada vez que si pida un nuevo numerowhile numero_oculto != numero_pedido and oportunidades>0:
#el bucle principal se ejecutara mientras que no se acierte el numero completo y las oportunidades restantes no lleguen a 0
numero_pedido = raw_input("Adivina el numero oculto ("+ str(longitud)+ " cifras del 1 al " + str(rango) + ")")
#pido un numero al usuario y lo guardo en una variablemostrar_aciertos = ""
#una cadena vacia donde concatenare el propio numero si hay un acierto (me da lo mismo coger la cifra del numero pedido o del
#creado al azar) y un '*' si no hay coincidenciafor j in range(longitud):
#hago un bucle para poder tener un indice [j] que me permita comparar los digitos de cada numero uno a uno
#el rango sera 'longitud', igual al numero de digitos que especifica el usuario al principio del programa
if numero_oculto[j] == numero_pedido[j]:
mostrar_aciertos+=numero_oculto[j]
#si hay una coincidencia añado ese digito a la cadena vacia que cree anteriormente
else:
mostrar_aciertos+="*"
#si no hay coincidencia le añado un asteriscooportunidades-=1 #resto una oportunidad despues de hacer cada comprobacion
print "%s Te quedan %d oportunidades" % (mostrar_aciertos, oportunidades)
#muestro en pantalla la cadena con aciertos y fallos y las oportunidades restanteselse: #si no se cumple el while es porque o se han terminado las oportunidades o porque se acerto el numero
if oportunidades == 0:
print "Se te acabaron las oportunidades, vuelve a intentarolo"else:
print "Enhorabuena, acertaste!"master_mind()
Una posible solución para el ejercicio 2. Saludos
-
Hola kuouz, gracias por participar en el blog. No puede revisar todos los ejercicios, pero tiene muy buena pinta. Saludos
-
De nada Diego. A lo mejor con los comentarios quedó un poco lioso, si alguien le interesa saber algo del código que no dude en preguntar. Saludos.
-
-
Hola Diego, Soy nueva programando y estoy en la primera asignatura. Tengo un proyecto que debo presentar en 5 dias y llevo 4 dias intentando desarrollarlo pero no he podido. El proyecto se parece al que tu desarrollastes del tesoro, solo que tiene unas cuantas diferencias. Primero solo debo usar loops (if y while) puesto que el tutor solo eso nos ha enseñado por ahora y no podemos usar funciones. Segundo el juego se desarrolla en un grid de 10x10. Tercero debemos usar las teclas 1234 o UDLR (Up,Down,Right,Left) para que el jugador se desplaze al pulsar esas teclas y solo tiene tres intentos. Durante esos intentos debe encontrar obsatuclos que son de operacion matematicas. La posicion del tesoro se encuentra una variable random. Crees poder ayudarme? POR FAVOR!!!! Necesito ayuda estoy intentando estudiar para poder encontrar un trabajo. Gracias!
-
Hola Jasmine, gracias por visitar el blog. Has hecho algo? estaría bueno ver la letra del problema y ver los que has intentado hacer. Saludos
-
-
Hola Diego,
Esto es lo que tengo hasta el momento.
print "WELCOME TO THE TREASURE GAME!!"
print "nMay I have your name please?:"
name = raw_input("> ") # Name of the playerprint "nWelcome to the game, " + name
print "You have to find the treasure and...n"
print "you only have 3 moves.....n"
print "Wich one you are going to pick??"
#print "U. upnD. downnR. rightnL. left."#answerMove = str(raw_input("> ")) # Answer of the player for the move
banswerMove = True # Controla el gameplayerX = 0 # Position of the player in uthe line x stars at 0
playerY = 0 # Position of the player in the line y stars at 0
tresureX = 6 # Position of the tresure in the line x
tresureY = 6 # Position of the tresure in the line y
countTries = 0 # Numbers of tries to find the treasure
numTriesLeft=3 # Variable to show how many tries leftover they have# While the banswerMove is true and the tries are less then 3 will keep runing
while banswerMove and countTries < 3:print "U. upnD. downnR. rightnL. left."
answerMove = str(raw_input("> ")) # Answer of the player for the move# The player move up and tries 3 times
if answerMove == "U" or answerMove == "u" and countTries <= 3:
playerX = playerX + 1
countTries = countTries + 1# Showing the player that is moving up and how many moves leftover have
# Finish the game if they pass the 3 times ## need to change for ask againg
if countTries <= 2:
print "You are moving up ", name," !!!"
print "You have only ",numTriesLeft-countTries," more moves!!!"else:
print "Game Over"
banswerMove = Falseelif answerMove == "D" or answerMove == "d" and countTries <= 3:
playerX = playerX + 1
countTries = countTries + 1# Showing the player that is moving up and how many moves leftover have
# Finish the game if they pass the 3 times ## need to change for ask againg
if countTries <= 2:
print "You are moving down ", name," !!!"
print "You have only ",numTriesLeft-countTries," more moves!!!"else:
print "Game Over"
banswerMove = Falseif playerX == tresureX:
print "You WON"
# elif playerX != tresureX and countTries == 3:
# print "GAME OVER"banswerMove = True
-
¡Buenas! En un ratillo he hecho los ejercicios 2 y 3, os paso como lo he hecho, el 4 no lo he hecho porque se basa en una operación de cálculo sin más dificultad.
#EJERCICIO 2
#Creamos la password
def crear_password(longitud,password):
import random
print "Introduce la password para adivinar: "
for i in range(longitud):
password.append(random.randint(1,10))
print "PASSWORD DEL JUEGO: "
print password#Creamos la solucion
def crear_solucion(longitud,solucion):
print "Introduce la solucion para adivinar: "
for i in range(longitud):
elemento = input("Introduce elemento: ")
solucion.append(elemento)
print "SOLUCION DEL JUEGO: "
print solucion#############################
###FUNCION PRINCIPAL###
#############################
def main():
password = []
solucion = []
print "Por favor, introduzca la longitud de la cadena: "
longitud = input("Longitud: ")
if longitud >= 2 and longitud <=10:
print "PASSWORD: "
crear_password(longitud,password)
print "SOLUCION: "
print crear_solucion(longitud,solucion)
count = 0
a = 0
b = 0
for i in range(longitud):
if password[a] == solucion [b]:
a = a + 1
b = b + 1
count = count +1
print "Numeros acertados: " , count
else:
print "Datos no validos"print main()
######################################################
EJERCICIO 3
print """EJERCICIO 3:
Tienes que decir si una palabra rima mucho, poco o nada."""
def rima(palabra1, palabra2):
if palabra1[-3:]==palabra2[-3:]:
print "Rima bastante"
elif palabra1[-2:]==palabra2[-2:]:
print "Rima un poco"
else:
print "No rima nada"palabra1=raw_input("Introduce la primera palabra: ")
palabra2=raw_input("Introduce la segunda palabra: ")
print rima(palabra1,palabra2)-
Excelente Daniel!!!
-
-
Me sirvió de mucho, gracias Diego.
-
#ej 4
dolars = int(input("Ingresar monto de dolares: "))
rate = float(input("Ingresar tasa de interes: "))
time = int(input("Ingresar numero de años: "))def inv(dolars, rate, time):
x = dolars*((1+ rate/100) ** time)
return round(x, 2)
resultado = inv(dolars, rate, time)
print ("Cuando pasen", time, u"años, con un", rate,
u"% de interes, usted habrá generado", resultado, "dolares.")
Deja una respuesta
holaaa
llevo semanas estudiando en esta pagina soy estudiante de ingenieria en informatica y me a ayudado mucho.
tengo dudas sobre el ejercicio 2:
cual es la diferencia entre input y raw_input
y en las variables tot = evalua(cadena, aleatorio, eleccion) y aleatorio = num_aleat(cadena) no entiendo que hace lo que va dentro del parentesis