🔚8.1 Ejercicios resueltos de bucles while - Curso de programaciÃģn desde cero (con Python)

āđāļŠāļĢāđŒ
āļāļąāļ‡
  • āđ€āļœāļĒāđāļžāļĢāđˆāđ€āļĄāļ·āđˆāļ­ 6 āļ•.āļ„. 2024
  • 👌 Si este video te resulta Útil y quisieras dar tu apoyo (ÂĄgracias! âĪïļ):
    ➡ïļ cafecito.app/p...
    o ➡ïļ www.paypal.me/...
    #8.1: EJERCICIOS RESUELTOS DE REPETICIÓN CONDICIONAL O BUCLES WHILE:
    0:42 - Algoritmo para leer montos de ventas y aplicar un descuento si supera determinado total.
    11:08 - Algoritmo para contar dígitos pares e impares de varios nÚmeros y cantidad de pares e impares en total.
    26:23 - Algoritmo para leer strings y contabilizar dígitos numÃĐricos encontrados (usando bucles anidados para considerar distintas condiciones)
    Para ver el cÃģdigo de los ejercicios mostrados en este video: github.com/pro...
    En la comunidad del canal podrÃĄs encontrar resÚmenes y material que puede serte Útil para comprender mejor estos conceptos: / programaciondesdecero
    En este curso gratis para aprender a programar utilizaremos Python como lenguaje de programaciÃģn y aprenderemos los conceptos bÃĄsicos que luego podremos utilizar en otros lenguajes populares.
    Para saber cÃģmo descargar e instalar Python, accede a este video: â€Ē ðŸ’ŧ CÃģmo instalar Python...
    ÂŋTe gustaría aprender a programar para crear aplicaciones, convertirte en un profesional o utilizarlo como herramienta en tu trabajo? Esta serie de videos te permitirÃĄ empezar a programar desde 0 y crear tus primeros programas de forma bÃĄsica y sencilla.
    Es importante que, ademÃĄs de ver los videos, intentes resolver los ejercicios. Para eso utiliza la pausa, analiza los problemas planteados y luego verifica la soluciÃģn con el video.

āļ„āļ§āļēāļĄāļ„āļīāļ”āđ€āļŦāđ‡āļ™ • 54

  • @wavyjones96
    @wavyjones96 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +7

    Mis muertos a caballo, no fui de capaz de sacar un solo ejercicio a la primera jajajajaj, no obstante me gustan estos ejercicios mÃĄs difíciles para los que estamos aprendiendo jejeje saludos desde EspaÃąa!

  • @Tatocabrera001
    @Tatocabrera001 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +3

    tan bella gracias pude crear en base al codigo de impares uno nuevo con solo un while y determina si es par o impar arrojando su resultado y cortando con cero ademÃĄs tiene una opciÃģn de sumatoria gracias a tu video entendí mejor esto ya que soy nuevo manejando el programa

  • @kastikas
    @kastikas 2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +3

    Fua sos muy crack! Yo ya habia pensado en una anotacion antes de empezar a codificar pero no creia que tenia tanto impacto! El pseudo codigo es muy bueno, aparte te ayuda en la comprension de tu mismo pensamiento y minimizar ciertos errores a la hora de programar en si... Creo que el pseudo codigo es valido para la vida cotidiana.

  •  5 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +10

    ÂŋDudas? ÂŋPreguntas sobre estos ejercicios? ÂĄDeja acÃĄ tu comentario!

    • @galadidier9580
      @galadidier9580 2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      en el ejercicio de los pares e impares, no se te olvido poner que pasaba cuando ingresaban un numero negativo?

    • @kastikas
      @kastikas 2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

      @@galadidier9580 no se le olvido, ella aclara que se apega a lo pedido en la consigna, pero aclara que es obvio que hay detalles como los que mencionas que se pueden mejorar pero el codigo seria mas complejo....

    •  2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      En realidad podríamos agregar esa y unas cuantas validaciones mÃĄs (y deberíamos, si esto fuera cÃģdigo de un programa real). Pero optÃĐ por que nos enfoquemos en el algoritmo principal, para no complejizar demasiado la consigna con otras cosas que no son el tema puntual que estamos aprendiendo.

  • @giuseppithepenciltv3111
    @giuseppithepenciltv3111 2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +2

    Hermosa voz y bella explicacion

  • @nicolaschaparro5164
    @nicolaschaparro5164 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

    Genia mundial, estoy estudiando python en la facu, y me sirve mucho esto, queria saber si el tiempo de aprendizaje es tan largo como me parece, veo y entiendo todo, pero a la hora de resolver un ejercicio, nose que hacer bien, pero se mucho mas de lo que sabia antes, nuevamente gracias!

    •  āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

      ÂĄMe alegro de que mi contenido te sea Útil! El tiempo de aprendizaje es algo muy personal. Solo puedo decirte que para muchas personas (me incluyo) es cuestiÃģn de llegar al momento en que la cabeza te hace un "clic" y empezÃĄs a entender. Y se logra solamente con prÃĄctica. No hay que ser un genio matemÃĄtico ni tener ninguna habilidad especial. Si ves que te da problemas la parte lÃģgica, tal vez pueda servirte hacer ejercicios de razonamiento como los que estÃĄn en el video 0.1 de este curso (hay muchísimos mÃĄs en internet). ÂĄÃ‰xitos!

  • @yeissoncamilovillamilbland558
    @yeissoncamilovillamilbland558 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +2

    que brutal estos videos la verdad uffff me han ayudado un montos, besos parcerita

  • @rudydd2
    @rudydd2 2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +3

    Saludos, excelente curso!!

  • @alexishuaytasegura801
    @alexishuaytasegura801 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

    Felicitaciones por tu canal, muy bueno!!!
    En el primer ejercicio, en caso de que el usuario introduzca una letra por error, el programa dejara de funcionar, a diferencia de cuando introduce un negativo, para corregir eso, realice lo sgte:
    suma=0
    while(True):
    try:
    suma=0
    monto=float(input("Introduce el monto de tu compra: "))
    while monto!=0:
    if monto1000:
    suma-=suma*0.1
    print(suma)
    break
    except:
    print("Monto invÃĄlido")

    •  2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      ÂĄHola! Sí, en estos ejercicios iniciales no hacemos demasiadas validaciones y es posible "romper" el programa bastante fÃĄcilmente. ÂĄPero es muy bueno que estÃĐs indagando cÃģmo se pueden validar las entradas y utilizar try-except es un muy buen camino!

  • @joseheronsameperioleon9022
    @joseheronsameperioleon9022 4 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +3

    muy bien explicado!
    Grcias :)

  • @augustocostantino8386
    @augustocostantino8386 2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    yo hice un re lio en el primero jaja me olvide de que se podia poner != asi que me quedo raro, pero funciono e incluso con funciones nuevas. Luego vi el del video y me dije AAAAAAAAAAAAAAAAAAA y lo acomode, quedando lindo y economizado :D.
    Me falta una banda jsjs demora bastante tiempo para mi gusto pero bueno a seguir practicando lo necesario

  • @JuanCarlos-ss5he
    @JuanCarlos-ss5he 4 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

    Muchas gracias son muy buenos ejemplos me ayudo mucho :)
    Disculpe solo que en la linea 5 del cÃģdigo me genera un bucle infinito imprimiÃĐndome la misma cantidad sin detenerse así
    que lo cambie por un monto=float(input("Ingrese un Monto vÃĄlido")) .
    total=0
    monto=float(input("Monto de una venta en :$"))
    while monto!=0:
    if monto

    •  4 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      ÂĄMe alegro de que te haya servido el video! Respecto a tu cÃģdigo: uno de los problemas es que la instrucciÃģn if no estÃĄ dentro del bucle while, entonces faltaría agregar sangría a esa línea. Por otra parte, para evitar un bucle infinito es necesario volver a leer el valor del monto dentro del bucle. En el ejercicio del video, el cÃģdigo es un poco mÃĄs largo que el que mostraste en tu comentario, por lo que esa línea monto=float(input("Monto de una venta en :$")) aparece fuera del "if" pero dentro del bucle while. EscribiÃĐndolo de esa manera, no debería haber un bucle infinito.

    • @JuanCarlos-ss5he
      @JuanCarlos-ss5he 4 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

      @ gracias :)

  • @diegoquispe7202
    @diegoquispe7202 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    hay un problema que no lo puedo resolver me podrias ayudar?:
    Crear un programa que pida nombres y edades y agregue a la lista aquellos nombres cuyas edades sean de 17 o menor y a la lista aquellos cuya edad sea de 18 o mayor. El programa debe dejar de preguntar cuando ennombre el usuario ingrese una cadena vacía(solo pulse la tecla ).Luego debemostrar la lista de nombres que son menores y de aquellos que son mayores. Porejemplo, si ante la solicitud del programa de nombre y edad, el usuario responde , ,, , , (presiona la tecla), el programa debería mostrar:Menores: Pedro EstelaMayores: Juan Ana Jose

  • @hectorcedeno9273
    @hectorcedeno9273 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Saludos,
    tengo una duda. yo lo estaba haciendo por mi propia cuenta y anide el bucle while con un uno for para determinar el total de pares e impares. cuando coloco el resultado con el print fuera del bucle while me da el resultado bien, pero cuando coloco el print dentro del bucle while me da un resultado distinto, me gustaría saber por que sucede esto.
    quiero agradecer por su contenido, porque es con ustedes que estoy aprendiendo, antes no podía procesar bien y me decía que no estaba hecho para esto y ustedes me ayudaron a saber que no. este es mi ejercicio:
    digitoPar=0
    digitoImpar=0
    nro=int(input("Ingrese numero: "))
    while nro !=0:
    digito=nro%10
    nro=nro//10
    for x in [digito]:
    if x%2 ==0:
    digitoPar+=1
    else:
    digitoImpar+=1
    print("par: ", digitoPar, "/ impar: ", digitoImpar)
    nro = int(input("Ingrese numero: "))
    NOTA: Cuando coloco el print, fuera del ciclo while me da bien, pero no me permite continuar con el bucle. cuando esta dentro del while el resultado del total de pares e impares es errÃģneo.

  • @LaPlace583
    @LaPlace583 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +2

    Profesora, ÂŋCuÃĄntos min recomienda intentar hacer el ejercicio antes de ver la soluciÃģn?

    •  3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +2

      ÂĄHola! No podría decirte un tiempo, porque eso es algo muy personal. Lo ideal sería que te tomes todo el tiempo que puedas para resolver cada ejercicio y que intentes repasar los conceptos relacionados a cada ejercicio que no logras resolver. Mientras mÃĄs busques solucionar el problema por tus medios, mÃĄs vas a aprender. Incluso si no logras resolverlo, porque en el camino habrÃĄs aprendido por quÃĐ la forma que intentabas no era una buena soluciÃģn, y ese tambiÃĐn es un excelente aprendizaje.

    • @LaPlace583
      @LaPlace583 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

      @ listo profe gracias por tomarse el tiempo por responder, tomare mucho en cuenta su consejo.

  • @eduardomartinez4954
    @eduardomartinez4954 4 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

    No sÃĐ si siguen activos, pero tengo una duda: yo resolví el Último ejercicio con dos bucles while anidados: uno para el corte del programa (*) y otro para el fin de lectura de líneas (/). Este Último, en la resoluciÃģn del video, se hizo con un if. Mi duda es si es relevante esa diferencia y en quÃĐ contextos. Gracias.

    •  4 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

      Hola, Eduardo. Habría que ver el cÃģdigo para conocer exactamente el algoritmo que hiciste, pero en principio podría decirte que algo como esto sería incorrecto, y a continuaciÃģn te indico por quÃĐ:
      while cadena != "*":
      for caracter in cadena:
      if caracter in digitos:
      cantidadDigitos+=1
      while cadena == "/":
      lineas+=1
      print("Aparecen ", cantidadDigitos, " dígitos en la línea")
      cantidadDigitos=0
      El while que tiene como condiciÃģn que la cadena sea distinta de "/" debería ser un if ya que, por cada cadena ingresada necesitamos saber si se trata de "/" o no, sÃģlo una vez. Hasta que no se ingrese una nueva, la cadena seguirÃĄ siendo la misma, entonces no tendrÃĄ sentido evaluarla mÚltiples veces para saber si es o no el carÃĄcter "/".
      Si tu cÃģdigo es diferente, por favor colocalo acÃĄ para poder analizarlo. Saludos.

    • @eduardomartinez4954
      @eduardomartinez4954 4 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      AcÃĄ mando el cÃģdigo. Muchas gracias por la explicaciÃģn. Aprovecho para decir que el curso es genial, y me estÃĄ siendo de gran utilidad.
      Ahora, el cÃģdigo:
      numeros = "0123456789"
      finlinea = 0
      libro = input("Libro: ")
      while libro != "*":
      numlib = 0
      while libro != "/":
      for x in libro:
      if x in numeros:
      numlib += 1
      libro = input("Libro: ")
      print("Línea completa. Aparecen {} dígitos numÃĐricos".format(numlib))
      finlinea += 1
      libro = input("Libro: ")
      print("Fin. Se leyÃģ {} líneas completas.".format(finlinea))

  • @PaulCamones
    @PaulCamones 2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    hola necesito ayuda para escribir un programa que solicite un numero entero N y reporte en pantalla los valores de serie y la suma acumulada: 1^0+2^1+3^2+ ... + n^n-1 = suma
    Donde suma es el valor entero que corresponde a la suma total de dicha serie. Si ingresa n=3, deberÃĄ reportar en pantalla lo siguiente: 10 + 21 + 32 = 12

  • @casimiroporlaventana5201
    @casimiroporlaventana5201 2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Hola .. una pregunta : tengo un programa que me compara numeros ; pero es muy lento para procesar 1,5 millones de numeros .. uso el ciclo for.. que otra sentencia puedo usar para hacerla mas rapida ???

  • @David-cg6ew
    @David-cg6ew 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Yo lo hice así u.u
    monto = float(input("Digite el monto: "))
    total = 0
    while monto1000:
    total = total - (10/100)*total
    print("El monto total a pagar es de: ${}".format(total))

  • @ciscoasus
    @ciscoasus 2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    excelente video, pero como puedo hacer que me muestre diferentes mensajes, monto total, descuento obtenido y total con descuento gracias espero pueda responder abrazos

    •  2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      En ese caso vas a tener que imprimir un mensaje en caso de que no haya descuento y otro en caso de que sí lo haya, y para eso necesitarÃĄs mÃĄs instrucciones print. La primera debería ser antes de if total>1000 donde podríamos poner algo como el print de la Última línea, mostrando el total. Luego, dentro de ese if, imprimiremos el valor del descuento (que se calcula como total*0.1 y finalmente el total menos el descuento. Entonces el programa quedaria algo así:
      total=0
      monto=float(input("Monto de una venta: $"))
      while monto!=0:
      if monto1000:
      print("Descuento obtenido:", total*0.1)
      print("Monto a pagar, con descuento:", total-(total*0.1))

  • @marlonrodriguez1865
    @marlonrodriguez1865 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    El primer ejercicio lo hice un poco diferente pero me devuelve el mismo resultado:
    total = 0
    monto = float(input('Ingrese cantidad de compra: '))
    while monto != 0:
    if monto < 0:
    monto = float(input('Ingrese una cantidad correcta: '))
    total +=monto
    monto = float(input('Ingrese cantidad de compra: '))
    if total > 1000:
    dsto = total * 10 / 100 # total = total - (total*0.1) / total -= total*0.1
    print(f'Monto total sin descuento {total:.2f}')
    print(f'Monto total con descuento {total - dsto:.2f}')
    else:
    print(f'total a pagar {total}')

  • @laura-l4353
    @laura-l4353 4 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

    Le faltÃģ la parte donde le tendria que volver a pedir al usuario un monto nuevamente.

    •  4 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

      Hola, Laura. ÂŋTe referís al primer ejercicio? El monto vuelve a pedirse dentro del while. Puede verse en el 5:59 del video.

  • @giuseppithepenciltv3111
    @giuseppithepenciltv3111 2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    24:40 que significa //

  • @renzzoantoniomartinezbenav3398
    @renzzoantoniomartinezbenav3398 2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    total = 0
    monto = float(input("Monto de una venta: $"))
    while monto != 0:
    if monto < 0:
    print("Monto no valido")
    else:
    total+=monto
    monto = float(input("Monto de una venta: $"))
    if total > 1000:
    total -= total*0.1
    print("Tiene 10 porciento de descuento")
    print(f"El monto total a pagar es: {total}")
    else:
    (total < 1000)
    print("No tiene descuento")
    print(f"El monto total a pagar es: {total}")

    print("Gracias por su compra!.")

  • @ale_3654
    @ale_3654 2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    sabes porquÃĐ en lua me salta error al usar "in" en el if, el error es 'then' expected near 'in'

    •  2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      Lua es un lenguaje que no he usado, pero parece ser que ahí te estÃĄ diciendo que falta la palabra "then". Tal vez te ayude buscar una guía de sintaxis de Lua.

    • @ale_3654
      @ale_3654 2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      @ pues en el codigo si tengo escrito el then, por eso se me hace raro, y he estado leyendo la syntaxis e incluso buscando tutos, pero no hay casi nada de Lua, gracias por responder :)

  • @daniel-24gra79
    @daniel-24gra79 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    lo que no entendi es porque no volviste a mandar el monto = float(input("error digito no valido"))
    en la condicion que dice si monto es < 0

    •  3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

      ÂŋTe referís a por quÃĐ no hice el input dentro de if monto

    • @daniel-24gra79
      @daniel-24gra79 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      @ muchas gracias por la respuesta, pero lo probÃĐ como te dije incluyendolo en el primer ir y al final del bucle para volver a mandar la pregunta si se desea seguir dando datos

  • @jorgemontero2480
    @jorgemontero2480 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Aqui otra soluciÃģn
    total = 0
    impor = 1
    while impor != 0:
    impor = int(input("Digite importe --> "))
    if impor < 0:
    print('El importe debe ser positivo')
    else:
    total += impor
    print("Importe total: ", total)
    if total > 1000:
    total *= .9
    print('Total a pagar: ', total)

  • @rudydd2
    @rudydd2 2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    comparto mi soluciÃģn al ejercicio de numero pares e impares
    suma_par = 0
    suma_impar = 0
    numero = int(input("ingrese el numero: "))
    while numero != 0:
    digito = numero%10
    if digito%2 == 0:
    suma_par+=1
    else:
    suma_impar+=1
    numero=numero//10
    if numero == 0:
    numero = int(input("ingrese el numero: "))
    print("La cantidad de digitos pares son: ", suma_par)
    print("La cantidad de digitos impares son: ", suma_impar)

  • @giuseppithepenciltv3111
    @giuseppithepenciltv3111 2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    ??

  • @davidarroyo6043
    @davidarroyo6043 2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    No lo entiendo tanto porque :C

    •  2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      ÂŋQuÃĐ parte no te queda clara? ÂŋO quÃĐ te genera dudas?

    • @davidarroyo6043
      @davidarroyo6043 2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      @ casi en todas .
      Podría darme un consejo para tener un aprendizaje rÃĄpido

    •  2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      La velocidad de aprendizaje, creo, tiene relaciÃģn con las bases de conocimientos. Tal vez te ayudaría resolver ejercicios de razonamiento lÃģgico como los que se muestran al principio de este curso. Y luego ir prestando atenciÃģn a quÃĐ te genera problemas para saber quÃĐ tema reforzar.

  • @gary_vg8831
    @gary_vg8831 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    demasiado anuncio :C

    •  3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

      Comprendo que los anuncios sean molestos, pero son la herramienta que me permite publicar gratuitamente estos contenidos. Gracias por tu visita ☚ïļ.