El EXAMEN de PYTHON RESUELTO que te SALVARÁ la VIDA o te confirmará que debes estudiar más 💀

Поділитися
Вставка
  • Опубліковано 27 вер 2024
  • ¿Quieres saber si vas bien con Python o necesitas estudiar más? Con este examen resuelto vas a ver muchas de las posibles cosas que te pueden caer en un examen y lecciones para que puedas evitar alguna pregunta trampa 😉
    El contenido que cubre sería la base de Python antes de pasar a avanzado: variables, tipos, operadores, funciones, estructuras de datos (listas, tuplas, conjuntos, diccionarios), funciones integradas (range, len, int, input, print,...) y estructuras de control( if, else, elif, for, while, break). Si no puedes con el examen te recomiendo que le des un repaso a tu base de Python con esta lista de reproducción donde verás todo lo que te he mencionado: • Aprende Python desde Cero
    · Apoya este proyecto:
    Miembros: / @bitboss
    · Sígueme por redes:
    Twitter: / bitboss0
    TikTok: / bitboss0
    Instagram: / bitboss0
    #python #programacion #examenpython

КОМЕНТАРІ • 63

  • @BitBoss
    @BitBoss  3 місяці тому +9

    🫂 Antes que nada te recuerdo que si quieres apoyar este proyecto, puedes hacerlo uniéndote a Miembros del Canal:
    ua-cam.com/channels/51m1mQmjKJ10YZWtRr8tgA.htmljoin
    📝 Cuaderno online para que puedas hacer el examen por tu cuenta desde el navegador:
    colab.research.google.com/drive/1siV5ARScP3mi6zs2prdIIJyI2xkW3rTv?usp=sharing
    ➡ Si no tienes ni idea del cuaderno, te dejo también este vídeo:
    ua-cam.com/video/ZwtDVIVB58A/v-deo.html

  • @JA-eg8vo
    @JA-eg8vo Місяць тому +2

    Buen video para los que están iniciando a aprender python! Los pude hacer todos aunque algunos un poco más largo que tu manera de hacerlos. Ahora estaré esperando el nivel 2, donde hay que usar algunas otras cositas, como clases :)

  • @JohnSmith-ov3ps
    @JohnSmith-ov3ps 20 днів тому +1

    Bro no puedo creer la cantida de maneras diferentes de pensar un problema y resolverlo, creo que casi todo el codigo que hice es diferente al de Bit y eso me gusta, asi podemos aprender del codigo de los demas para mejorar y hacerlo por nuestra cuenta aunque sea mejor o peor codigo al menos nos recuerda que podemos resolver un problema por nosotros mismos. Gracias BitBoss

  • @mayleen8484
    @mayleen8484 3 місяці тому +5

    Hermano, no dejes de subir videos así 😔🙏🏻🙏🏻

    • @BitBoss
      @BitBoss  3 місяці тому +1

      Muchas gracias!! Siempre calidad > cantidad, vamos a por el siguiente 💪

  • @Viverdu09
    @Viverdu09 3 місяці тому +3

    Me ha venido de 10 el vídeo, magnífico contenido.

    • @BitBoss
      @BitBoss  3 місяці тому +1

      Muchísimas gracias ;3

  • @allchicken
    @allchicken 2 місяці тому +1

    Para cuando el usuario pone un nombre incorrecto, ya se por que no existe o no respeta mayusculas, puse que primero termine el ciclo for (claramente si exito) y una vez lo termine avise que no existe tal nombre, repiendo el mensaje que le permite al usuario introducir el nombre, esto ya que el ciclo for esta dentro de un while, que se repetira a menos que mi variable jugando cambie, que sera solo cuando el usuario meta un 0 o gane la adivinanza, dejando asi que pueda escribir correctamente el nombre.
    Me hubiera gustado tambien que no respetara las mayúsculas de manera que se permita ese error al usuario, pero no investigue eso

  • @JairoBuelvas-t4q
    @JairoBuelvas-t4q 22 дні тому

    Hola @BitBoos, primero agradecerte por este excelente contenido mi calificación fue 8.5 me confundí mucho con el Ejercicio 7: Incrementar Nivel de un Personaje (1.5 Puntos) asi que sigo aprendiendo.
    Para resolver el problema del usuario que ingresa un nombre sin respetar la sensibilidad en caracteres o que definitivamente no existe implemente una condición con la edad iniciándola en = -1 si este valor no cambia en el recorrido del for es porque el personaje no existe o esta mal escrito y con un print notifico el error return print("No existe personaje con ese nombre o esta mal escrito")

  • @luisberdugo963
    @luisberdugo963 3 місяці тому +1

    Videazo!!! Muchas gracias, Máster. 🤘

    • @BitBoss
      @BitBoss  3 місяці тому +1

      Gracias amigo! 🤘

  • @omar90982
    @omar90982 3 місяці тому +1

    sigue con estos videos bro

  • @carlosmanuelmoralesorozco482
    @carlosmanuelmoralesorozco482 3 місяці тому +1

    for personaje in personajes_principales:
    if personajes_principales not in lista_nombres:
    lista_nombres.append(personaje[0])
    while NOMBRE_PERSONAJE not in lista_nombres:
    print(f'Elija un nombre de entre los siguientes pesonajes: {lista_nombres}')
    NOMBRE_PERSONAJE = input("Introduzca el nombre del personaje: ").capitalize()

    • @BitBoss
      @BitBoss  3 місяці тому

      Primero generas una lista con los nombres, ten en cuenta que te ha faltado inicializarla (lista_nombres = []) Entiendo la lógica para generar esa lista pero cuidado con ese if, me imagino que realmente has querido hacer if personaje[0] not in lista_nombres:. Me imagino que esto es para cubrir la parte de introducir un usuario que no existe, en vez de informar de que lo ha introducido mal, le muestras un listado de los personajes disponibles.
      Una vez creada la lista con los nombres, creas un while que no pare hasta que el usuario introduzca un nombre de la lista de nombres. En cada iteración muestras la lista de nombres para evitar que se equivoque y si introduce mal el nombre porque lo ponga en minúsculas/mayúsculas lo solucionas cambiando con capitalize() el primer carácter a mayúsculas y el resto a minúsculas.
      👌¡Muy bien! 😊
      Peeeeeero, casi, casi, porque... ¿Y si el personajes con el que queremos jugar es "Dark Urge"? El capitalize() nos mostraría "Dark urge" y nunca coincidiría con el "Dark Urge" de la lista de nombres.

  • @santiiranzo6356
    @santiiranzo6356 3 місяці тому +1

    ¡Gracias!

    • @BitBoss
      @BitBoss  3 місяці тому +1

      Muchas gracias a ti por apoyarme directamente tirándome el dinero a la cara 💚

    • @santiiranzo6356
      @santiiranzo6356 3 місяці тому +1

      @@BitBoss como a una striper en un bar de Arkansas

    • @BitBoss
      @BitBoss  3 місяці тому +1

      Eeeeeeexacto! jajajaja

  • @gilbert876
    @gilbert876 3 місяці тому +2

    Buen video. En caso que no se repete mayúscula - minúscula al introducir el nombre, la condición del ciclo for no se cumpliría. Una solución sería usar la función capitalize() en el input: nombre = input("Introduzca el nombre: ").capitalize()

    • @BitBoss
      @BitBoss  3 місяці тому +1

      Gracias por valorarlo 😊 Buena respuesta pero no la mejor, hay un personaje llamado "Dark Urge", ¿seguiría funcionando tu propuesta?

    • @gilbert876
      @gilbert876 3 місяці тому +1

      @@BitBoss Tienes razón, la condición tampoco se cumple. Pero no sé si quieres que solamente de un mensaje de que no existe el nombre y vuelva intentar. Si es así, creo con un bucle while antes de pedir el nombre y después de la línea real = personaje[1] poner un break. Si no es igual el nombre quiere decir que no existe o está mal escrito, entonces poner un mensaje seguido de un continue después de un else.
      else:
      print("Nombre incorrecto, vuelve a intentarlo")
      continue
      Espero tu comentario. Estoy aprendiendo Python y me pareció muy bueno tu video. Un like y nuevo suscriptor!

    • @BitBoss
      @BitBoss  3 місяці тому

      Antes que nada, bienvenido :)
      Simplemente preguntaba cómo podemos hacer que nuestro juego siga funcionando correctamente aunque el usuario escriba mal el nombre debido a la sensibilidad a las mayúsculas, es decir, que si escribe dArK URge por ejemplo, detectará que se refiere al personaje Dark Urge.
      En vez de capitalize(), que casi cubre el problema, usaría lower() o upper(), estos métodos devuelven el string en minúsculas y mayúsculas respectivamente. Si elegimos por ejemplo lower(), luego al comprobar si existe en la base de datos, en vez de compararlo directamente con el nombre del personaje de la tupla, lo comparamos con su versión lower() para asegurarnos que las mayúsculas no nos van a afectar.
      nombre = input("Introduzca el nombre:")
      nombre = nombre.lower()
      for personaje in personajes:
      if personaje[0].lower() == nombre:
      nombre = personaje[0] # Si queremos corregir el nombre introducido
      real = personaje[1]
      break
      ...
      No obstante, si hubiera pedido que el juego debe solicitar el nombre hasta acertar con uno de la base de datos, tu solución apunta bien pero ten cuidado con dónde compruebas si ha terminado, si el else que has escrito es así (según he entendido):
      while ....
      for personaje in personajes:
      if personaje[0] == nombre:
      real = personaje[1]
      break
      else:
      print("Nombre incorrecto, vuelve a intentarlo")
      continue
      El for comprobaría el personaje, si lo es para con el break, si no lo es informa de que vuelvas a intentarlo y pasa al siguiente personaje del for. Provocando que, cuando imprimas un nombre incorrecto se imprima "Nombre incorrecto, vuelve a intentarlo", 11 veces. Estás cerca, te dejo que me contestes a este mensaje, y si no aciertas te doy una solución. Prueba tu código antes de contestarme.

    • @gilbert876
      @gilbert876 3 місяці тому

      @@BitBoss Hola, sí, también pensé que te referías a eso y estuve pensándolo en mi mente pero sin comprobarlo en la práctica. Lo había pensado con lower() y el ciclo for pero mi manera era incorrecta. Con tu último mensaje lo entendí y lo comprobé en Google Colab. Dejé un ciclo while al principio para darle la opción al usuario de salir y comprobar si el nombre existe:
      def encontrarPersonajesConEdad(personajes):
      comprobar = True
      while comprobar:
      nombre = input("Introduzca el nombre (presiona * para salir): ")
      nombre = nombre.lower()

      if nombre == "*":
      print("Abortado por el jugador")
      return

      for personaje in personajes:
      if personaje[0].lower() == nombre:
      real = personaje[1]
      comprobar = False
      break

      if comprobar == True:
      print("Nombre no existe, vuele a intentar")

      jugando = True
      while(jugando):
      edad = int(input("Introduzca edad (0 para terminar): "))

      if edad == 0:
      print("Interrupción por el jugador")
      break
      if real < edad:
      print(nombre, "es menor")
      elif real > edad:
      print(nombre, "es mayor")
      else:
      print("Exacto,", nombre, "tiene",edad)
      jugando = False

    • @gilbert876
      @gilbert876 2 місяці тому

      @@BitBoss Hola, me parece te había enviado el código hace días pero no lo veo ahora. No sé si UA-cam lo borra o qué.
      Le puse comprobación para que el usuario salga si desea:
      def encontrarPersonajesConEdad(personajes):
      comprobar = True
      while comprobar:
      nombre = input("Introduzca el nombre (presiona * para salir): ")
      nombre = nombre.lower()
      if nombre == "*":
      print("Abortado por el jugador")
      return
      for personaje in personajes:
      if personaje[0].lower() == nombre:
      real = personaje[1]
      comprobar = False
      break
      if comprobar == True:
      print("Nombre no existe, vuele a intentar")
      jugando = True
      while jugando:
      edad = int(input("Introduzca edad (0 para terminar): "))
      if edad == 0:
      print("Interrupción por el jugador")
      break
      if real < edad:
      print(nombre, "es menor")
      elif real > edad:
      print(nombre, "es mayor")
      else:
      print("Exacto,", nombre, "tiene",edad)
      jugando = False

  • @josue4601
    @josue4601 3 місяці тому +1

    Excelente video como de costumbre, habría sacado un 7 sin las asistencias (codeium y chatgpt). Tus soluciones excelentes, en cuanto a mi había obviado que return detiene la ejecución (use un variable para indicar la condición y un break 😥 ) . Luego en el personaje de mayor nivel había pensado una solución similar a la tuya, pero imagine que había una mas corta (aunque mucho menos digerible eso si), usando max, lo que no había considerado era usar el parámetro key (la verdad no recuerdo haberlo visto antes y menos necesidad de usarlo) y para lo otro filter con key (key usa lambda), filter si la he visto, se usa tambien en pandas 😅 . El otro que si se me había complicado es el de la tupla (si tenia claro lo de inmutable, pero la forma practica de hacerlo se me complicó), por cierto una forma mas simple de usar el indice y asi "reinsertar" la nueva tupla es usando enumerate, es hasta un poco mas entendible, me parece (pasas la tupla a lista, la modificas directamente, y usas el indice de enumerate). En el último si me vi obligado a usar break, también se me pasa siempre por alto que con while o if puedo pasar directamente la condición True (entiendo la lógica detrás, pero no tengo esa costumbre xD). Respecto a tu ultima pregunta, sería usar lower o upper para las coincidencias, y si no existe usar la variable edad que definiste como None, si ha encontrado el nombre se reemplaza y el juego continua, si no se mantiene en None y es suficiente para un condicional y usar continue. Muchas gracias por el video nuevamente, es un excelente repaso.

    • @BitBoss
      @BitBoss  3 місяці тому

      Muchas gracias Josue!!! 💚 Es una alegría que seas el primero en hacerlo :3
      Lo del return es un clásico, yo antes tenía la clásica costumbre de usar return + variable, con Python me he quitado la costumbre.
      Sobre el uso de max/filter + lambda considero que es avanzado y que es importante tener clara la base por eso me he centrado en hacer la versión más básica, conozco personas que saben usar streams en java pero luego no saben construir un for, pero vamos, está bien que lo uses, yo no he puesto ninguna restricción 😉 y en ese caso debes usar lambda para que el max sepa cuál es el campo que debe comparar.
      Usé range(len(personajes)) en el ejercicio de subir el nivel para hacer repaso de estas dos funciones integradas y los dobles accesos, por la idea de cubrir todo lo posible de lo que sería un examen de Python básico pero sí, la solución con enumerate es más limpia, el único "problema" sería la pequeña sobrecarga de la conversión de tuplas a listas y viceversa si lo que buscas es el código más optimizado posible para un uso masivo.
      En el último sí que había que hacer break como mínimo para la interrupción, así que sin problemas. Lo del while True si no tienes la costumbre es normal, lo primero que pensamos es meter un variable booleana/condición y ya.
      Aparte de acertar con lo de upper/lower, no sabes lo que me alegro de "el nombre se reemplaza" que me has escrito, es algo que no he dicho y es de valorar darse cuenta, más si tienes TOC como yo xD! Sobre la parte de cómo solucionamos si el nombre recibido no está en la base de datos, no he terminado de comprender tu solución ya que has usado una variable edad con None y en mi propuesta de solución no hago uso de eso, ojo, no digo que esté mal pero creo que quizás simplemente has hecho otra cosa diferente e igualmente válida si funciona, lo que no encajo es el continue (me imagino que lo usas con un while para solicitar el nombre hasta que introduzca uno válido).
      Muchas gracias a ti por esforzarte en hacer el examen tan rápido y sin tangarte con ChatGPT/hermanos 💚

  • @grandescanso2807
    @grandescanso2807 3 місяці тому +1

    Que buen video!!

    • @BitBoss
      @BitBoss  3 місяці тому +1

      Gracias! 😊

  • @BakuraGZ
    @BakuraGZ 3 місяці тому +1

    Guapo, a que hora sales por el pan?
    Jajajajaja ya pase todo eso pero igual me doy cuenta que debo repasar bastante. Muchas gracias, buen video capo!

    • @BitBoss
      @BitBoss  3 місяці тому

      jajajaja muchas gracias a ti guapetón 😘

  • @Jav451
    @Jav451 3 місяці тому +1

    Explicas mejor que mis profes xd aprovechando eso podrías hacer un vídeo de diccionarios para tontos xfa akdjak

    • @BitBoss
      @BitBoss  3 місяці тому

      Gracias! 😊 Si te refieres a la teoría de diccionarios tengo un vídeo sobre ello. Busca en la lista de Python del canal "Estructuras de datos", ahí explico listas, tuplas, conjuntos y diccionarios en 8 minutos, espero que te sirva ;)

  • @darofu4623
    @darofu4623 3 місяці тому

    A buenas horas lo subes justo antes hice el examen final

    • @BitBoss
      @BitBoss  3 місяці тому +1

      No jodas! :((( Me hubiera encantado subirlo antes pero me fue imposible, ¿cómo te ha ido?

    • @darofu4623
      @darofu4623 3 місяці тому +1

      @@BitBoss Regular

    • @BitBoss
      @BitBoss  3 місяці тому

      🤞🤞🤞 mejor regular que mal 🙈

  • @reyallen3108
    @reyallen3108 3 місяці тому +2

    💯

  • @joshuaeduradoortegaflores8988
    @joshuaeduradoortegaflores8988 Місяць тому +1

    te extraño

    • @BitBoss
      @BitBoss  23 дні тому

      Gracias por decírmelo 💚 Sigo vivo, y hoy hay vídeo ;)

  • @eliasdelgado1755
    @eliasdelgado1755 3 місяці тому

    Try:
    Except:
    Para corroborar que ingresé un nombre válido y añadir un .lower() para que lo que ingresé venga en minúscula??

    • @BitBoss
      @BitBoss  3 місяці тому +1

      Te faltó tener en cuenta que al compararlo con el nombre de la base de datos también tienes que compararlo con su versión lower().
      nombre = input("Introduzca el nombre:")
      nombre = nombre.lower()
      for personaje in personajes:
      if personaje[0].lower() == nombre:
      nombre = personaje[0] # Si queremos corregir el nombre introducido
      real = personaje[1]
      break

  • @nicolaschampi7997
    @nicolaschampi7997 3 місяці тому

    Puedes hacer un vídeo de listas

    • @BitBoss
      @BitBoss  23 дні тому

      Aquí está todo lo que tengo de Python, entre ellos tengo las estructuras de datos donde explico las listas: ua-cam.com/play/PLDXvhsYB9YPydrapCVAkLI4TgrO2d7Eti.html

  • @TheMATRIX70000
    @TheMATRIX70000 2 місяці тому +2

    Una prueba excelente, bien explicada (como todo el curso), y que mejor que con temática de Baldur´s Gate que es de mis sagas favoritas de toda la vida. Se agradece bastante todo el contenido que hay en este canal bro, de lo mejor de UA-cam en cuanto a explicaciones y clases. Saludos compa

  • @edwindavila6104
    @edwindavila6104 2 місяці тому +2

    Como siempre este ha sido un aportazo!!!. Debo admitir que cuando vi el cuestionario me dieron ganas de salir corriendo😨, la verdad me dio miedo resolverlo. pero me dije, vamos a ver que tanto hemos aprendido y acá me encuentro en una lucha épica. Gracias nuevamente por la ayuda y por favor sube con mas frecuencia estos grandes contenidos.✌️

    • @BitBoss
      @BitBoss  Місяць тому

      Muchas gracias por los ánimos 💚 deseando de sacar tiempo para terminar algunos que tengo a medio hacer.

  • @aleister9069
    @aleister9069 2 дні тому

    eres unos de los que si se esmeran por enseñar bien las cosas muchas gracias sos mejor que mis profesores de la Uni

  • @emmanuelromero3450
    @emmanuelromero3450 3 місяці тому +2

    Uffd tu manera de explicar siempre asombra y mas para alguien que recien empieza con este gran mundo, sigue asiii

    • @BitBoss
      @BitBoss  3 місяці тому

      Muchas gracias Emmanuel por tus palabras 💚 Seguiremos! :3

  • @rocs9181
    @rocs9181 3 місяці тому +2

    Después de tiempo 😢, pensé que ya no subirías contenido, te admiro saludos desde Peru 🇵🇪 ❤

    • @BitBoss
      @BitBoss  3 місяці тому +1

      Gracias! 💚 Me demoré demasiado entre cosas propias y que este vídeo quedó más largo de lo que ideé en principio.

  • @santiiranzo6356
    @santiiranzo6356 3 місяці тому +1

    sin haberlo visto aún, ya sé que tengo que estudiar más, buen vídeo, gracias

    • @BitBoss
      @BitBoss  3 місяці тому

      jajajaja espero que te sirva! 😊

  • @xsamueljr
    @xsamueljr 3 місяці тому +1

    No he visto el vídeo todavía porque voy a resolverlo todo primero, pero viendo el examen la verdad es que estoy impresionado con la capacidad de enseñanza que tienes (tengo 2 años de experiencia con el lenguaje y también me gusta explicarle cosas a amigos)
    En el hipotético caso de que cree un curso (seguramente gratis), ¿puedo usar el examen? Te daría créditos y recomendaría tu canal, por supuesto
    También me interesa la idea de crear una versión mejorada, pensada para ejecutar en local y con tests unitarios. ¿Te lo puedo mandar por algún sitio cuando esté?

    • @BitBoss
      @BitBoss  3 місяці тому +1

      Antes que nada, gracias por tus palabras. Sobre la pregunta seré claro, no quiero que mi contenido salga de aquí, y menos a plataformas de pago. Doy permiso para usarlo en clases como me han solicitado algunos profesores para sus clases de universidad, o adjuntarlo como material recomendado, pero nunca descargarlo. Si tu objetivo no es lo mencionado anteriormente, y lo que quieres es hacer un curso propio deberías de ser capaz de hacer tu propio contenido, examen incluido. Si quieres enviarme algo para ayudar siempre se agradece, puedes hacerlo a mi correo bitbossyt@gmail.com

    • @xsamueljr
      @xsamueljr 3 місяці тому +1

      @@BitBoss Perdona, pero no he entendido muy bien dónde está el límite en si se puede usar o no (y si no lo tengo claro pues no lo uso de ninguna forma, antes hago yo uno bastante diferente). Si tenemos un "foro" puedo poner enlace al vídeo de UA-cam a modo de material extra recomendado, pero no puedo usarlo así tal cual para evaluar a la gente a la que les dé clases, ¿verdad?
      La verdad lo que tengo en mente ahora no es nada oficial ni mucho menos de pago, serían un servidor de Discord y una clase en Google Classroom, entrada gratis en ambos

    • @BitBoss
      @BitBoss  3 місяці тому +1

      Te diría que no pero por lo obvio, quien se haya visto el vídeo va a aprobar porque ya sabe las respuestas. Si tu objetivo es simplemente que se pongan a prueba ellos mismos sin nota de por medio pasándole el examen que he creado por mí sin problema, simplemente es pasarles el enlace del Colab, donde ya viene enlazado el propio vídeo para que puedan corregirse ellos mismos.
      Como dijiste "cree un curso" no sabía qué querías hacer, si un canal de YT, Udemy, etc, además el "seguramente gratis" me hizo dudar de tus intenciones. Piensa que me llegan muchos comentarios y como en el mundo tiene que haber de todo, entre ellos gente un pelín parásita así que me veo obligado a preguntar.
      Por si no lo sabes, te pongo un poco en contexto de estos meses, una plataforma llamada edu tin está vendiendo certificados usando mis vídeos y el de otros creadores dejando caer que colaboran con nosotros, cosa que no es verdad. Así que espero que entiendas por qué estamos con la escopeta cargada con palabras como "crédito".
      Por lo que entiendo simplemente vas a usar el examen (Colab) como material educativo a tus alumnos, por lo que dale sin problemas, al revés, gracias por la difusión.

    • @xsamueljr
      @xsamueljr 3 місяці тому +1

      @@BitBoss Lo de seguramente era porque no lo tengo 100% seguro, pero como jamás he enseñado nada profesionalmente pues tendrá que ser gratis, más aún si referencio material ajeno, paso de estafar. El coger experiencia enseñando para futuras ocasiones me basta
      Y sí, la verdad que entiendo perfectamente el enfoque "defensivo" de la primera respuesta, estoy enterado de la polémica con esa plataforma

    • @BitBoss
      @BitBoss  3 місяці тому +1

      ¡Te animo a ello! Gracias a preparar el contenido y enseñar siento que ha mejorado mucho mi base del lenguaje, así como los conceptos. Creo que es de las mejores formas de crecer profesionalmente. Si al final te lanzas a la piscina comunícamelo por si me puedo pasar por tu clase y si haces lo que me comentaste también. Go! go! go!

  • @carlosjuliomesag.5528
    @carlosjuliomesag.5528 3 місяці тому +1

    Gracias mi amigo