Google+ Seguidores

jueves, 30 de mayo de 2013

Ejercicios en python (Parte 2)

    42

Voy a dejar 10 nuevos ejercicios python. Esta ves un poco mas complejos que Ejercicios en python (Parte 1)

Ejercicios Python
Ejercicios Python
los anteriores. Si no vieron los primero ejercicios, acá dejo la entrada:
Como dije en la primera entrada, los ejercicios tienen muchas formas de resolverse. Para los mas experimentados quiza les lleve unas pocas lineas de codigo, para otros que recién empiezan quizá les lleve un poco mas de código.
En la semana dejare las soluciones en una entrada nueva y al final de este post para compararlas con las soluciones de ustedes.
Estaría bueno que puedan comentar en caso de dudas o dejar sus soluciones para compararlas o para ayudar al resto de la comunidad.

Ejercicio 1
La función max() del ejercicio 1 (primera parte) y la función max_de_tres() del ejercicio 2 (primera parte), solo van a funcionar para 2 o 3 números. Supongamos que tenemos mas de 3 números o no sabemos cuantos números son. Escribir una función max_in_list() que tome una lista de números y devuelva el mas grande.

Ejercicio 2
Escribir una función mas_larga() que tome una lista de palabras y devuelva la mas larga.

Ejercicio 3
Escribir una función filtrar_palabras() que tome una lista de palabras y un entero n, y devuelva las palabras que tengan mas de n caracteres.

Ejercicio 4
Escribir un programa que le diga al usuario que ingrese una cadena. El programa tiene que evaluar la cadena y decir cuantas letras mayúsculas tiene.

Ejercicio 5
Construir un pequeño programa que convierta números binarios en enteros.

Ejercicio 6
Escribir un pequeño programa donde:
- Se ingresa el año en curso.
- Se ingresa el nombre y el año de nacimiento de tres personas.
- Se calcula cuántos años cumplirán durante el año en curso.
- Se imprime en pantalla.

Ejercicio 7
Definir una tupla con 10 edades de personas. Imprimir la cantidad de personas con edades superiores a 20.
Puedes variar el ejercicio para que sea el usuario quien ingrese las edades.

Ejercicio 8
Definir una lista con un conjunto de nombres, imprimir la cantidad de comienzan con la letra a.
También se puede hacer elegir al usuario la letra a buscar.  (Un poco mas emocionante)

Ejercicio 9
Crear una función contar_vocales(), que reciba una palabra y cuente cuantas letras "a" tiene, cuantas letras "e" tiene y así hasta completar todas las vocales.
Se puede hacer que el usuario sea quien elija la palabra.

Ejercicio 10
Escriba una función es_bisiesto() que determine si un año determinado es un año bisiesto.Un año bisiesto es divisible por 4, pero no por 100. También es divisible por 400

Bueno espero se entretengan un buen rato con estos ejercicios. Si tienen alguna duda estaría bueno que puedan dejar sus comentarios.
Bueno nos vemos en las soluciones...

42 comentarios:
Write comentarios
  1. El primero ejercicio me sirvió muchísimo, ni siquiera sabía que se podían usar listas como argumentos de funciones, yo lo resolví más primitivamente, con un bucle, más o menos así:

    def maxmin():
    r="si"
    l=[]
    while r:
    n=float(input("Numero: "))
    op=input("Deseas agregar otro numero: ")
    if op=="si":
    l.append(n)
    pass
    elif op=="no":
    r=op
    l.sort()
    for i in l:
    print (i)
    print ("El mayor es ", l[-1])
    break

    ResponderEliminar
    Respuestas
    1. Me alegro te haya servido. Esta noche miro bien tu código. Saludos y gracias por comentar.

      Eliminar
    2. hola amiga gracias por los ejercicios sirven mucho para ir familiarizandose con la sintaxis, te quiero preguntar si sabes el equivlente del gotoxy en python ? uso el editor por defecto que trae python pero me gustaria saber el equivalente

      Eliminar
    3. Hola cesar, creo que necesitas el modulo curses para hacer lo mismo que el gotoxy, fijate en este enlace haber si es lo que necesitas: http://www.python.org/doc//current/howto/curses.html

      Saludos

      Eliminar
  2. Este comentario ha sido eliminado por un administrador del blog.

    ResponderEliminar
  3. Hola, gracias por publicar la solucion del primer ejercicio soy un novato y no hayaba como hacerlo. Pero analizando tu código logré pulirlo un poco más, revisalo a ver que tal. Lo que hice fue eliminar la variable r y le quite el pass que le habias colocado

    def maxmin():
    L =[]

    while True:
    n = float(input("Numero: "))
    op = raw_input("Deseas agregar otro numero: ")
    if op == "si":
    L.append(n)
    elif op == "no":
    L.append(n)
    L.sort()
    print "El mayor es ",L[-1]
    break

    maxmin()

    ResponderEliminar
  4. compañero, como hago para llenar un vector, pero que sea el usuario quien lo haga, e intentado con ciclos, pero las funciones raw_input, y demás no me funcionan, porque si establezco un vector vacio, no me lo permite, agarezco una respuesta, gracias.

    ResponderEliminar
    Respuestas
    1. Hola Camilo, fijate el siguiente codigo, es solo para agregar un elemento, pero tu lo puedes modificar como quieras, espero te sirva, saludos.

      a = []

      def llenarVector(vector):
      ----x = raw_input("Ingrese un dato")
      ----vector.append(x)

      llenarVector(a)

      Eliminar
    2. Gracias por tu respuesta amigo. Tengo esta solución:
      mensaje = "Ingrese el valor: "
      n = 5

      vector = [
      int(raw_input(mensaje))
      for i in range(n)

      ]

      print vector

      Eliminar
    3. y este para matrices:

      m = "Ingrese valor: "

      def Matriz(x,y,mensaje):
      matriz = [[
      int(raw_input(mensaje))
      for i in range(x)
      ]for j in range(y)]
      return matriz

      print Matriz(3, 3, m)

      Eliminar
  5. Muy buenas soluciones, muchas gracias!

    ResponderEliminar
    Respuestas
    1. quise decir ejercicios jejeje, las soluciones también están geniales!

      Eliminar
    2. Jaja se entendio, gracias por pasarte por el blog. Saludos

      Eliminar
  6. Respecto al ejercicio uno la solución más rápida me parece esta:

    def max_in_list(lista):
    mayor=0
    for i in range (len(lista)):
    if lista[i]>mayor:
    mayor=lista[i]
    return mayor

    Y si queremos visualizar el resultado en pantalla podemos aplicar una salida semejante a esto:

    mi_lista=[1,5,8,9,4,6,8,7,5,8]
    print 'El mayor de los numeros de la lista es ',max_in_list(mi_lista)

    Espero que os sirva el aporte.

    ResponderEliminar
    Respuestas
    1. Excelente Sergio, gracias por el aporte y por pasarte por el blog. Saludos

      Eliminar
    2. def max_in_list(l):
      aux=None
      for i in l:
      if aux==None:
      aux=i
      elif aux<i:
      aux=i
      return aux

      Eliminar
  7. Escribir un programa que le diga al usuario que ingrese una cadena. El programa tiene que evaluar la cadena y decir cuantas letras mayúsculas tiene.

    hola tengo este problema que cuando imprimo las mayúsculas me incluye los espacios y no se como solucionarlo ya que es a petición del usuario y no tengo un numero exacto de valores a eliminar

    def mayu(cadena):
    cont = 0
    a=[ ]
    a.extend(cadena)
    for x in a:
    if x == x.upper():
    cont+=1
    print cont

    preg = raw_input('cadena?') #MaMa Me QuIeRe MuChO 'este es el texto
    mayu(preg) # me devuelve 12

    ResponderEliminar
    Respuestas
    1. Hola Brian, fijate en esto:

      def mayu(cadena):
      cont = 0
      a=[ ]
      a.extend(cadena)
      abc = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZ"
      for x in a:
      if x in abc:
      cont+=1
      print cont

      Saludos

      Eliminar
    2. También tenia el mismo problema y una solución alternativa puede ser:

      def contar_mayus (lista):
      contador = 0
      for letra in lista:
      if letra == letra.upper():
      if letra != ' ':
      contador += 1
      return contador

      Eliminar
    3. Tambien podría ser ésta:

      def buscar_mayus(palabra):
      cont = 0

      for char in palabra:
      if char.isupper():
      cont += 1
      print("Mayusculas encontradas:",cont)

      Eliminar
  8. Muy buenas, en el ejercicio 7 veo un pequeño problema. Si no me equivoco a las tuplas no se le pueden añadir elementos, por lo tanto si pedimos al usuario que ingrese una edad no podremos incluir esas edades en una tupla vacía, verdad? Yo lo he hecho con una lista y quedaría tal que asi:

    def edades():
    lista = []
    contador = 0

    for i in range(0,10):
    lista.append(int(raw_input("Introduce edad")))

    for j in lista:
    if j > 20:
    contador+=1
    print "Hay %d personas en la tupla con más de 20 años" % contador

    edades()

    Si hay alguna forma de hacerlo con tuplas estaría bien saberlo. Saludos y gran página, enhorabuena.

    ResponderEliminar
    Respuestas
    1. Hola Kuouz, gracias por visitar el blog. En la primera parte pide una tupla "ya definida". Despues dice que podemos hacerlo interactuando con el usuario (ahí si lo hacemos con una lista ;)
      Saludos

      Eliminar
    2. Ok gracias por responder Diego. Así lo entendí al final, pero estuve un buen rato dándole vueltas al asunto porque tampoco tenía muy clara la diferencia entre lista y tupla. He aprendido Python por otros medios y no sé si lo explicaste en algún tutorial, de momento sólo estoy haciendo los ejercicios que planteas.
      Saludos.

      Eliminar
    3. Si te fijas arriba a la derecha en el blog. Abajo de Artículos Recientes, hay un tutorial de python que empeze el año pasado. Este año tengo el objetivo de terminarlo (Quizá te sea de ayuda). Pero cualquier duda deja tu comentario que te vamos a ayudar. Saludo grande!!!

      Eliminar
  9. Las Tuplas Son inmutables

    ResponderEliminar
  10. hola, estoy encantado con tu blog, me esta resultando de gran utilidad, enhorabuena, pero en el ejercicio 10 me ha surgido una duda que no logro solucionar. Si en el input meto como año el numero 12.00000000000000000000000011 me dice que este año es bisiesto, de todas formas se que para este caso no tiene sentido por que al ser un año tiene que ser un numero entero, pero por ejemplo si en un programa quisiermos ver si un numero es multiplo de 4 como podría solucionar este problema?, muchas gracias

    ResponderEliminar
  11. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  12. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  13. Saludos al ejecutar este codigo binario cambia de valor y no se la razón. Me podrias ayudar con el problema?

    513
    El numero 01011 en decimal es 0


    def binToInt(binario):
    aux=0
    resultado=0
    print "%d" % binario #bandera para saber el valor
    while binario>0:
    resultado = resultado+(binario%10)*2**aux
    binario=binario /10
    aux = aux +1
    return resultado

    print " El numero 01011 en decimal es %d" % binToInt(01001)

    Enhorabuena por la web.

    ResponderEliminar
    Respuestas
    1. Lo veo luego y te comento. Saludos

      Eliminar
    2. Muchas gracias, acabo de darme cuenta, el fallo esta en que el número que pasa como argumento comienza por 0 y Python lo toma como si fuese Octal. Un saludo y gracias por la web, muy entretenida.

      Eliminar
    3. Excelente. Gracias por visitarnos. Saludos

      Eliminar
  14. como hago para ingresar un listado y el monto??

    ResponderEliminar
  15. Mi solución al ejercicio 9:

    cadena_ingresada = raw_input("Ingrese una palabra: ")
    cadena = cadena_ingresada.lower()

    vocales = "aeiou"
    lista = []

    for i in cadena:
    >>>/ for x in vocales:
    >>>/>>>/ if i == x:
    >>>/>>>/ lista.append(i)

    def contar_vocales(l, v):
    >>>/ print "Hay %d '%s' en la palabra '%s'" % (l.count(v), v, cadena)

    for vocal in vocales:
    >>>/ contar_vocales(lista, vocal)

    ResponderEliminar
  16. def numeroMayor():
    numeros = []
    numero = input("Inserte los números a evaluar, al finalizar presione ENTER: ")
    while numero != '':
    numeros.append(numero)
    numero = input("Inserte los números a evaluar, al finalizar presione ENTER: ")
    print ("Esta es tu lista: ",numeros)
    print ("Los numeros con la función máx son: ", max(numeros))

    numeroMayor()

    ¡Aca esta mi codigo! saludos y gracias por el ejercicio número 1.

    ResponderEliminar
    Respuestas
    1. no se valia usar la funcion max

      Eliminar
  17. para el ejercicio 1 sin tanto rollo,

    #!/usr/bin/python
    #!python

    l = [1,2,3,4,5,6,7,8,9,22,10,11,12,13,14,15,16,17,18,19]

    def maximun(l):
    a = 0
    rango = ( len(l) - 1 )
    for i in range(rango):
    if( l[i] > (l[i+1] and a ) ):
    a = l[i]
    if( a > l[rango]):
    return a
    else:
    return l[rango]

    print maximun(l)

    ResponderEliminar

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

Entradas más recientes

© 2014 Mi diario Python. Designed by Bloggertheme9 | Distributed By Gooyaabi Templates
Powered by Blogger.