Curso Python. Interfaces gráficas VIII. Vídeo 49

Поделиться
HTML-код
  • Опубликовано: 29 янв 2025

Комментарии • 142

  • @pildorasinformaticas
    @pildorasinformaticas  3 года назад +5

    ✅✅ ✅ ✅ ✅ Todos mis cursos gratuitos 👉 www.pildorasinformaticas.es ✅✅ ✅ ✅ ✅
    🚀 ¿Quieres ejercicios? ¿Quieres más temario? 👉 www.pildorasinformaticas.es/course/python-tutorizado/🚀
    🚀 ¿Quieres que te resuelva las dudas de Python👉 www.pildorasinformaticas.es/course/python-tutorizado/ 🚀
    💥💥💥 Siempre seguiré subiendo cursos gratuitos por aquí. Gracias a todos por seguirme. 💥💥💥

    • @elmegapeluco
      @elmegapeluco 2 года назад

      Hay alguna forma de evitar que si pulsas el botón + todo el rato sin estar especificando ningún numero se sigan sumando los números? Es decir y tal como esta él codigo ahora, tu escribes 2 le das + y sin haber introducido ningún segundo numero suma 2 y 2, con lo cual deja 4 en pantalla, de nuevo le das a + y recoge nuestro 4 de la pantalla, y así espameando el botón + sin estar agregando nada hace: 2+2+4+4+8+8+16+16+32+32.
      Es lo que veo con la diferencia de la calculadora de windows.
      Soy novato en phyton, ¿Como se controlaría esto?

  • @fafapons
    @fafapons 7 месяцев назад

    7 años del curso y recien lo arranco sos un tipaso pildoras gracias por tanto pienso dejarte este coment cada vez que termine un video mil gracias

  • @manuelhenriquez7144
    @manuelhenriquez7144 6 лет назад +17

    Otro maravilloso video de este gran profesor, muchas gracias.

  • @pedromorel309
    @pedromorel309 6 лет назад +7

    Profe muchas gracias, es un gran curso, todo bien detallado, muchas gracias por explicar tan bien, y convertir lo complejo en sencillo

  • @diam4187
    @diam4187 4 года назад +2

    Tú nombre debería quedar grabado en la historia, caballero de pildorasinformaticas.

  • @liraacedogijon5871
    @liraacedogijon5871 2 года назад

    Señor muchas gracias por tus videos de verdad me ha ayudado mucho con mi proyecto final de python le quiero mucho

  • @fernandoelis2467
    @fernandoelis2467 4 года назад +12

    Me siento como Tokio y usted como El Profesor de la casa de papel.
    Excelentes!

  • @alekz8bits736
    @alekz8bits736 6 лет назад +1

    Desde la clase pasada intenté resolver lo de la calculadora y me salieron muchas líneas de código, suma y hasta tuve que googlear para saber cómo jalar variables globales y pum!! Que veo el vídeo y que las usas, no andaba tan perdido, lo que sí, es que lo optimizador mejor, espero algún día ser igual de bueno que tú Juan

  • @kendrivaldez2066
    @kendrivaldez2066 4 года назад +49

    Para los que usan el IDLE y les da error de Syntax por los ":" del Lambda, solo pongan la L en minuscula y mas nada.

  • @gustavosanchez7400
    @gustavosanchez7400 6 лет назад +1

    Solo tengo palabras de agradecimiento, ya estoy esperando la aproxima clase!!

  • @SoySebastianCuellar
    @SoySebastianCuellar 6 лет назад +2

    que crack ojala nunca acabe estos cursos.....

    • @pedromorel309
      @pedromorel309 6 лет назад

      totalmente deacuerdo con usted Sebastian

  • @iDarthBlade
    @iDarthBlade 6 лет назад +3

    Gracias por publicar más de Python :)

  • @pablobustamanteidro4283
    @pablobustamanteidro4283 6 лет назад +1

    estupendo curso, gracias a dios le di a la campanita por que no me acordaba del nombre del canal

  • @DEHIBHISBANNER9
    @DEHIBHISBANNER9 6 лет назад +6

    una pildorainformatica mas para la vida...

  • @richie_joel
    @richie_joel 6 лет назад +29

    Muy buenas tardes profesor, excelente curso 💪
    Me gustaría que nos enseñe inteligencia artificial, sé que con python es más amigable la IA (eso me han dicho) con librerías como scikit-learn, AIMA, SimpleAI, estoy en 5to semestre ingeniería en networking y telecomunicaciones ( he visto programación todos los semestres) y me gustaría aprender IA, por favor profesor 💪

    • @ElRinconDeJavo
      @ElRinconDeJavo 6 лет назад +23

      La propuesta no es mala en absoluto, solo que programar cosas tan concretas como una IA se alejan bastante de lo que viene siendo el aprendizaje de un lenguaje de programación. Para lo que pides al menos yo considero que seria más apropiado hacerlo en un curso de "Lógica de programación", donde se enseñen ejercicios para mejorar el pensamiento matemático, se aprendan a utilizar algoritmos básicos, se promueva el crear algoritmos propios y para este caso en concreto que mencionas se profundice en Machine Learning, que es el área especializada en IA. Todo esto es independiente al lenguaje de programación que utilice cada uno y sirve en cualquier caso.
      Si ahora se explicase como utilizar librerías como Scikit-Learn o AIMA solo se estaría enseñando a utilizar dichas librerías, más no a entender un concepto como el Machine Learning y muchos se perderían entre las explicaciones.
      Lo mejor es ir paso por paso, no hay que intentar correr antes de aprender a caminar.

  • @memejamas3818
    @memejamas3818 3 года назад

    gracias profe ya casi lo tenemos listo

  • @federicojosabrun4651
    @federicojosabrun4651 4 года назад +2

    Hola! Excelente curso, muchas gracias por disponibilizarlo de manera gratuita. Podrías indicarme en qué video explicas el funcionamientod e la palabra reservada "global"?

  • @andresserrano2197
    @andresserrano2197 6 лет назад

    Excelente aporte, en futuros cursos creo que deberías lanzar uno de R para big data. eso llevaría a otro nivel este canal. saludos y continua compartiendo tus conocimientos.

  • @Alberto-st6iv
    @Alberto-st6iv 5 лет назад +5

    Hola a todos!
    Estoy realizando este curso de Python y otro de Excell y la duda que me surje es si creen que es mejor practicar bastante y poco a poco todos los conceptos que voy aprendiendo (bucles, condicionales, sistactica basica, etc) o si por el contrario es mejor adquirir mas conocimientos (POO y el resto del curso) y luego practicar con todos esos conocimientos.
    Se que hay que practicar muchísimo para aprender pero la preguntar es si ganar conocimientos y luego ponerlos en practica todos o ir poniendo en practica los conocimentos poco a poco. Porque con bucles puedo hacer "programas" muy sencillos o liarme "todo lo que quiera" pero nose si me estoy parando demasiado en estos primeros temas
    Muchas gracias y un saludo

  • @mauriciovillada2963
    @mauriciovillada2963 3 года назад

    Super Profe ...Muchas Gracias

  • @cagesies
    @cagesies 4 года назад

    Excelente curso .Felicidades Profesor

  • @Alfonso6143
    @Alfonso6143 6 лет назад +1

    Excelente profesor muchas gracias por compartir saludos

  • @christianfuentes6682
    @christianfuentes6682 2 года назад +2

    Hola, dónde encuentro el código definitivo de esta calculadora, porque me pierdo.Gracias

  • @tomasmartinez5055
    @tomasmartinez5055 4 года назад +27

    Lo más curioso de esto es que nunca usamos print

  • @speakmespanish2923
    @speakmespanish2923 4 года назад

    tanta lucha que cogi aqui, hasta que busque otro video y me encontre el "eval()", una maravilla esa funcion ;cc

  • @oriolcastella9094
    @oriolcastella9094 4 года назад +1

    sencillamente espectacular !! muchas gracias. lo único que no puedo es descargarme tu programa de la calculadora.

  • @jonamaxxdgutierrez9512
    @jonamaxxdgutierrez9512 4 года назад

    para los numeros decimales creo que es tan sencillo como usar el metodo de strings replace y cambiar las comas por puntos y despues de realizar todos los calculos internos volver a cambiar los puntos por coma para mostrarlo en pantalla

  • @enzovicente573
    @enzovicente573 2 года назад +2

    una pregunta: el boton7=Button(miFrame, text="7", width=3, command=Lambda:numeroPulsado("7") me tira error en el : y no me pone en blue el Lambda

    • @frederickduran8228
      @frederickduran8228 2 года назад +1

      Debe ser muy tarde para responderte xd
      Pon lambda primero minúscula y luego los ":" y el nombre de la variable

  • @pedromorel309
    @pedromorel309 6 лет назад +1

    Necesitamos que siga haciendo videos en Python

  • @arido2004
    @arido2004 4 года назад

    Profesor mil gracias

  • @osvaldotorrez8975
    @osvaldotorrez8975 6 лет назад

    Exelente curso. Muy bien explicado. Me gustaria que se vieran temas sobre sockets y si es posible con tkinter.

  • @tecnol-sw2881
    @tecnol-sw2881 4 года назад +5

    Hola, me gustaría saber si la pantalla de calculadora, se puede alarga de tamaño vertical y también darle mas tamaño a los números. El código dentro del Entry solo acepta Width pero no reconoce Height.

  • @corujoanders
    @corujoanders 7 месяцев назад

    Realmente creo que en este punto alguien que empiece desde 0 o sin conocimientos previos de programación le seria muy difícil terminar este programa "sencillo", yo estoy aprendiendo por hobby, sin embargo no me cierro a la posibilidad de estar programando algo en un futuro que me apasione, hoy tenemos a nuestro favor muchas herramientas que nos pueden ayudar a completar el Código cuando nos atascamos pero definitivamente queda mucho por recorrer.

  • @martinezsantiagoalainmigue4308
    @martinezsantiagoalainmigue4308 3 года назад

    Miguel Martínez estuvo aquí!!

  • @a33v573
    @a33v573 6 лет назад +7

    jajaja , yo llevaba como media hora matandome porque me daba un error en la funcion suma , y despues de todo eso resulta que lo unico que me faltaba eran los parentesis

    • @santiagoperezkay2991
      @santiagoperezkay2991 2 года назад

      me paso ,hasta le pregunte a un amigo programador ,me tiro un par de tips para buscar los errores etc... despues de un tiempo se me prendio la lamparita y era que me faltaba 1 parentesis al get..
      buscar tu error y solucionarlo creo que es una practica que enriquece y satisface como nada en el mundo. :D

  • @omaraleman1055
    @omaraleman1055 5 лет назад +1

    Hola, gracias por tus cursos son muy buenos. Cristo de bendiga. Por casualidad tendras algún curso de Google Apps Script?

  • @matonolo
    @matonolo 6 лет назад +2

    Una pregunta profesor. Porque en la funcion numeroPulsado la variable numeroPantalla no fue necesario pasarla como global?

    • @CarlVs__7
      @CarlVs__7 5 лет назад

      Tengo la misma duda, a ver si alguien puede resolvernosla

    • @IgnacioAOlivar
      @IgnacioAOlivar 4 года назад

      porque es una instancia de StringVar de módulo TKinter y si mal no recuerdo las instancias de objetos son intrínsecamente globales, salvo que se codifique lo contrario. Python trata a las variables dentro de las funciones como locales a la misma y las encapsula (lo que pasa dentro de la función queda en la función, al no ser un lenguaje tan tipado y que hay que declarar todo se presta a confusión. Bueh, depende del programador. Estoy estudiando mucho python en parte porque me cansé de java y c++, es más intuitivo e incluso hasta más rápido para codificar. Y porque el 90% de las herramientas y librerías que encuentro en mi distro de Linux están realizadas en python

  • @GabrielAlvarado
    @GabrielAlvarado 6 лет назад +1

    Juan, muchísimas gracias nuevamente por todo lo que haces por ayudar a la comunidad a salir del analfabetismo informático. Tengo una única duda respecto a este vídeo. Me pasa que el número en pantalla siempre queda en memoria, y por ende si pulso sucesivamente el botón '+' sin introducir nuevos números la pantalla de la calculadora muestra una progresión. Por ejemplo, si pulso en este orden '2 + 2 + + + +' la pantalla de la calculadora muestra '2 2 4 8 16 32 64', cuando debería quedarse en el número 4 como en una calculadora normal. ¿Tienes idea de cómo corregir esto? Lo he pensado pero no se me ocurre cómo.

    • @santiagoperezkay2991
      @santiagoperezkay2991 2 года назад

      tengo la misma duda.

    • @santiagoperezkay2991
      @santiagoperezkay2991 2 года назад

      creo que lo que voy hacer es usar
      state=tk.DISABLED
      que va a deshabilitar el boton cada ves que se aprete 1 ves y volver habilitarlo cada ves que ingrese un nuevo valor (0,1,2,3,4,5,6,7,8,9) no es estetico ya que el boton se vera deshabilitado pero "funcional" 😋

  • @ivanvarela5063
    @ivanvarela5063 6 лет назад +3

    Hola podrias subir un curso de C++ te lo agradeceria mil años. Gracias

  • @duque7986
    @duque7986 6 лет назад +1

    GENIAL

  • @christianfuentes6682
    @christianfuentes6682 2 года назад +1

    me pueden explicar el código de la resta? gracias

  • @youting9512
    @youting9512 4 года назад

    de donde sale el método global resultado ?

  • @redmaytals
    @redmaytals 6 лет назад +9

    Buenas, para quien le interese comparar les dejo mi código.
    Decir que verán impreso en consola: "memoriaSuma, memoriaResta".......es simplemente para un tema de búsqueda de errores mientras hacía el programa. Verán también que cada vez que le damos a un operador el display queda a "0" en espera de un nuevo número......se puede mejorar, por supuesto!!
    Saludos a todos, felicidades por el canal y a esperar una nueva entrega!!!
    CÓDIGO:
    from tkinter import *
    raiz=Tk()
    raiz.title("¡¡CALCULÍN!!")
    miFrame=Frame(raiz)
    miFrame.pack()
    operacion = ""
    memoriaSuma = 0
    memoriaResta = 0
    memoriaMulti = 1
    memoriaDivi = 1
    #--------------------------PANTALLA-------------------------------
    numeroPantalla=StringVar(value="0")
    pantalla=Entry(miFrame,textvariable=numeroPantalla)
    pantalla.grid(row=1,column=1,padx=10,pady=10,columnspan=4)
    pantalla.config(background="white",fg="green",justify="right")
    #-------------------------PULSACIONES TECLADO---------------------
    def numeroPulsado(num):
    if numeroPantalla.get() == "0" and num == "0":
    numeroPantalla.set("0")
    elif numeroPantalla.get() == "0" and num == ",":
    numeroPantalla.set("0,")
    elif numeroPantalla.get() == "0" and num != "0":
    numeroPantalla.set(num)
    else:
    if numeroPantalla.get().count(",") == 0:
    numeroPantalla.set(numeroPantalla.get() + num)
    elif numeroPantalla.get().count(",") >= 1 and num == ",":
    numeroPantalla.get()
    else:
    numeroPantalla.set(numeroPantalla.get() + num)
    #------------------------BORRAR-----------------------------------
    def borra():
    borrado = numeroPantalla.get()
    numeroPantalla.set(borrado[0:-1])
    #----------------------------OPERACIONES--------------------------
    def suma():
    global operacion
    global memoriaSuma
    global memoriaResta
    global memoriaMulti
    global memoriaDivi
    operacion = "suma"
    if memoriaResta == 0 and memoriaMulti == 1 and memoriaDivi == 1:
    memoriaSuma = memoriaSuma + int(numeroPantalla.get())
    numeroPantalla.set("0")
    else:
    if memoriaResta != 0:
    memoriaSuma = memoriaResta - int(numeroPantalla.get())
    numeroPantalla.set("0")
    memoriaResta = 0
    elif memoriaMulti != 1:
    memoriaSuma = memoriaMulti * int(numeroPantalla.get())
    numeroPantalla.set("0")
    memoriaMulti = 1
    else:
    memoriaSuma = memoriaDivi / int(numeroPantalla.get())
    numeroPantalla.set("0")
    memoriaDivi = 1
    print ("memoriaSuma ",memoriaSuma)
    print ("memoriaResta ",memoriaResta)
    print ("memoriaMulti ",memoriaMulti)
    print ("memoriaDivi ",memoriaDivi)
    def resta():
    global operacion
    global memoriaResta
    global memoriaSuma
    global memoriaMulti
    global memoriaDivi
    operacion = "resta"
    if memoriaSuma == 0 and memoriaMulti == 1 and memoriaDivi == 1:
    if memoriaResta == 0:
    memoriaResta = int(numeroPantalla.get()) - memoriaResta
    else:
    memoriaResta = memoriaResta - int(numeroPantalla.get())
    else:
    if memoriaSuma != 0:
    memoriaResta = memoriaSuma + int(numeroPantalla.get())
    numeroPantalla.set("0")
    memoriaSuma = 0
    elif memoriaMulti != 1:
    memoriaResta = memoriaMulti * int(numeroPantalla.get())
    numeroPantalla.set("0")
    memoriaMulti = 1
    else:
    memoriaResta = memoriaDivi / int(numeroPantalla.get())
    numeroPantalla.set("0")
    memoriaDivi = 1
    numeroPantalla.set("0")
    print ("memoriaSuma ",memoriaSuma)
    print ("memoriaResta ",memoriaResta)
    print ("memoriaMulti ",memoriaMulti)
    print ("memoriaDivi ",memoriaDivi)
    def multi():
    global operacion
    global memoriaMulti
    global memoriaSuma
    global memoriaResta
    global memoriaDivi
    operacion = "multi"
    if memoriaSuma == 0 and memoriaResta == 0 and memoriaDivi == 1:
    memoriaMulti = int(numeroPantalla.get()) * memoriaMulti
    numeroPantalla.set("0")
    else:
    if memoriaSuma != 0:
    memoriaMulti = memoriaSuma + int(numeroPantalla.get())
    numeroPantalla.set("0")
    memoriaSuma = 0
    elif memoriaResta != 0:
    memoriaMulti = memoriaResta - int(numeroPantalla.get())
    numeroPantalla.set("0")
    memoriaResta = 0
    else:
    memoriaMulti = memoriaDivi / int(numeroPantalla.get())
    numeroPantalla.set("0")
    memoriaDivi = 1
    print ("memoriaSuma ",memoriaSuma)
    print ("memoriaResta ",memoriaResta)
    print ("memoriaMulti ",memoriaMulti)
    print ("memoriaDivi ",memoriaDivi)
    def divi():
    global operacion
    global memoriaDivi
    global memoriaSuma
    global memoriaResta
    global memoriaMulti
    operacion = "divi"
    if memoriaSuma == 0 and memoriaResta == 0 and memoriaMulti == 1:
    memoriaDivi = int(numeroPantalla.get()) / memoriaDivi
    numeroPantalla.set("0")
    else:
    if memoriaSuma != 0:
    memoriaDivi = memoriaSuma + int(numeroPantalla.get())
    numeroPantalla.set("0")
    memoriaSuma = 0
    elif memoriaResta != 0:
    memoriaDivi = memoriaResta - int(numeroPantalla.get())
    numeroPantalla.set("0")
    memoriaResta = 0
    else:
    memoriaDivi = memoriaMulti * int(numeroPantalla.get())
    numeroPantalla.set("0")
    memoriaMulti = 1
    print ("memoriaSuma ",memoriaSuma)
    print ("memoriaResta ",memoriaResta)
    print ("memoriaMulti ",memoriaMulti)
    print ("memoriaDivi ",memoriaDivi)
    def igual():
    global operacion
    global memoriaSuma
    global memoriaResta
    global memoriaMulti
    global memoriaDivi
    if operacion == "suma":
    numeroPantalla.set(memoriaSuma + int(numeroPantalla.get()))
    memoriaSuma = 0
    elif operacion == "resta":
    numeroPantalla.set(memoriaResta - int(numeroPantalla.get()))
    memoriaResta = 0
    elif operacion == "multi":
    numeroPantalla.set(memoriaMulti * int(numeroPantalla.get()))
    memoriaMulti = 1
    else:
    numeroPantalla.set(memoriaDivi / int(numeroPantalla.get()))
    memoriaDivi = 1
    print ("memoriaSuma ",memoriaSuma)
    print ("memoriaResta ",memoriaResta)
    print ("memoriaMulti ",memoriaMulti)
    print ("memoriaDivi ",memoriaDivi)
    #----------------------------FILA 1-------------------------------
    boton7=Button(miFrame,text="7",width=9,command=lambda:numeroPulsado("7"))
    boton7.grid(row=2,column=1)
    boton8=Button(miFrame,text="8",width=9,command=lambda:numeroPulsado("8"))
    boton8.grid(row=2,column=2)
    boton9=Button(miFrame,text="9",width=9,command=lambda:numeroPulsado("9"))
    boton9.grid(row=2,column=3)
    botonDiv=Button(miFrame,text="/",width=9,command=lambda:divi())
    botonDiv.grid(row=2,column=4)
    #--------------------------FILA 2---------------------------------
    boton4=Button(miFrame,text="4",width=9,command=lambda:numeroPulsado("4"))
    boton4.grid(row=3,column=1)
    boton5=Button(miFrame,text="5",width=9,command=lambda:numeroPulsado("5"))
    boton5.grid(row=3,column=2)
    boton6=Button(miFrame,text="6",width=9,command=lambda:numeroPulsado("6"))
    boton6.grid(row=3,column=3)
    botonMult=Button(miFrame,text="x",width=9,command=lambda:multi())
    botonMult.grid(row=3,column=4)
    #---------------------------FILA 3-------------------------------
    boton1=Button(miFrame,text="1",width=9,command=lambda:numeroPulsado("1"))
    boton1.grid(row=4,column=1)
    boton2=Button(miFrame,text="2",width=9,command=lambda:numeroPulsado("2"))
    boton2.grid(row=4,column=2)
    boton3=Button(miFrame,text="3",width=9,command=lambda:numeroPulsado("3"))
    boton3.grid(row=4,column=3)
    botonRest=Button(miFrame,text="-",width=9,command=lambda:resta())
    botonRest.grid(row=4,column=4)
    #---------------------------FILA 4---------------------------------
    boton0=Button(miFrame,text="0",width=9,command=lambda:numeroPulsado("0"))
    boton0.grid(row=5,column=1)
    botonComa=Button(miFrame,text=",",width=9,command=lambda:numeroPulsado(","))
    botonComa.grid(row=5,column=2)
    botonIgual=Button(miFrame,text="=",width=9,command=lambda:igual())
    botonIgual.grid(row=5,column=3)
    botonSuma=Button(miFrame,text="+",width=9,command=lambda:suma())
    botonSuma.grid(row=5,column=4)
    #-----------------------------FILA 5-----------------------------------
    botonBorra=Button(miFrame,text="BORRAR",width=18,fg="red",command=lambda:borra())
    botonBorra.grid(row=6,column=2,columnspan=2,pady=10)
    raiz.mainloop()

    • @gersalina2
      @gersalina2 5 лет назад +2

      Da error al presionar igual más de una vez

    • @catacabello2569
      @catacabello2569 4 года назад

      Hola! muchas gracias por compartir tu código, estoy recién aprendiendo esto y estoy un poco complicada. Por qué al momento de codificar la suma pones operadores de multiplicación o resta? no debería todo sumarse?, intenté poner todo con suma y no me funciona, pero no entiendo la lógica.
      En esta parte:
      else:
      if memoriaResta != 0:
      memoriaSuma = memoriaResta - int(numeroPantalla.get())
      numeroPantalla.set("0")
      memoriaResta = 0
      elif memoriaMulti != 1:
      memoriaSuma = memoriaMulti * int(numeroPantalla.get())
      numeroPantalla.set("0")
      memoriaMulti = 1
      else:
      memoriaSuma = memoriaDivi / int(numeroPantalla.get())
      numeroPantalla.set("0")
      memoriaDivi = 1

    • @redmaytals
      @redmaytals 4 года назад +2

      @@catacabello2569 releyendo por encima tampoco entiendo porqué lo puse...😲
      Entiendo también que en cuando memoriaResta != 0 significa que se ha hecho una resta anteriormente, por lo tanto el nuevo valor de la variable memoriaSuma debería asignarle el valor de memoriaResta + el valor introducido.

    • @redmaytals
      @redmaytals 4 года назад +3

      De aquí podemos aprender la necesidad de comentar siempre el código 😉

    • @sebastianantil1249
      @sebastianantil1249 4 года назад +2

      @@redmaytals esta mal tu codigo bro xd al apretar un boton de operacion no da nada y te muestra numeros en el IDLE de python xd

  • @saulmaldonado3391
    @saulmaldonado3391 5 лет назад +1

    Si alguno no utilizó argumento para su stringvar() ni el lambda y ahora quiere transformarlo en entero para sumarlo con el resultado; en lugar de volver en entero el stringvar() llamen lo que ha obtenido el stringvar() para que no le de el error de no poder transformar a entero un strvar(). digamos que "strv= Stringvar()", con " int(strv.get())" lo transforman en entero

    • @juanjososa7558
      @juanjososa7558 5 лет назад

      No puedo hacer que entienda. Que num es entero

    • @nickenbrote
      @nickenbrote 5 лет назад

      gracias no podia hacer que lo convierta, en mi caso cambie :
      resultado += int(num)
      por:
      resultado += int(numeroPantalla.get())
      y anduvo, lo que no entiendo es por que a el le funciona con NUM.

  • @martinrodriguez5818
    @martinrodriguez5818 2 года назад

    Buenas tardes. Tengo una duda que no puedo resolver. Como puedo hacer para que, al momento de pulsar por ejemplo el botón "suma", me muestre el símbolo "+" y luego realice la operación? En el ejemplo, cuando apretamos sumar se mantienen los números escritos anteriormente y desaparecen (se guardan en la variable) al colocar los siguientes números. Yo quiero que me muestre la operación que voy a realizar. Muchas gracias

    • @marcoencinas1965
      @marcoencinas1965 2 года назад

      Con la funcion eval() con esta funcion puedes pasarle un string por ejemplo: 2+2 y realizará la operacion no se mucho sobre esa funcion pero puedes investigar yo tambien me preguntaba lo mismo y en internet encontre esa función suerte!

  • @juanmadelaflor6406
    @juanmadelaflor6406 6 лет назад +2

    Buenas a mi me salta una duda. Operacion y resultado son globales, porque numeropantalla no es global?. Muchas gracias

    • @abacabador
      @abacabador 5 лет назад +1

      Porque a numero de pantalla le estás llamando a través de los métodos ".set" y ".get" mientras que a operación y resultado las estás manipulando dentro de la función utilizando como llamada a la variable externa a la función el método "global". Si estoy equivocado, corregidme por favor. Gracias!!!!!!

    • @oscargm1979
      @oscargm1979 5 лет назад +1

      @@abacabador nah..tienes razón :)

  • @JS0998
    @JS0998 6 лет назад +5

    Cuando haces un curso de c++??

    • @ralsim5308
      @ralsim5308 6 лет назад

      Ivan solis si, lo necesitamos

    • @JS0998
      @JS0998 6 лет назад

      White Blanca sin duda alguna, definitiva mente lo esperamos de este gran profe✌🏼

    • @pedromorel309
      @pedromorel309 6 лет назад

      Uufff amigos Python es el lenguaje más usado de la actualidad, porfa C++ es un grandiisisiisisissisimo lenguaje y de mucha actualidad, pero todavía sería muy bueno seguir con Python, un abrazo

    • @JS0998
      @JS0998 6 лет назад

      Pedro Morel por supuesto Python es un gran lenguaje pero ojalá el prf Juan haga también uno de c++ sin duda algo que esperamos desde hace mucho y claro no voy a mentir pero me cuesta un poco la sintaxis de Python.. Saludos ✌🏼

  • @lucasmhevia
    @lucasmhevia 4 года назад +2

    No entiendo porque las variables "operacion" y "resultado" se deben declarar como globales dentro de las funciones, pero a la variable "numeroPantalla" no la declaran asi, siendo que es una variable externa a la funcion y se la esta modificando desde adentro (Igual que las 2 primeras variables que mencioné)..
    Alguie podría ayudarme?

    • @gabrielgonzalezmelgarejo
      @gabrielgonzalezmelgarejo Год назад

      hola, ya te explicaron el porque?, quisiera saberlo también

    • @lucasmhevia
      @lucasmhevia Год назад

      @@gabrielgonzalezmelgarejo La verdad que deje de programar y hoy en día no tengo ni la más pálida idea de que es todo esto jajaja

  • @photoafpimagen
    @photoafpimagen 5 лет назад

    Hola Sigo, con el curso y voy a seguir, pero tengo que "solucionar", un tema de entendimiento (razonamiento organizativo) para aplicar la herramientas que si puedo manejarlas (sintaxis) pero ¿Como aplicarla? de acuerdo a una necesidad, hasta ahora copio lo que "Juan" dice (trabajo con el IDE de Python, porque no pude instalar "sublime, VSC, ni pude habilitar Brackets, y razono en base a su video tomando nota, estoy tratando de leer otras paginas, para refrescar lo "aprendido" , asi estoy buscando pensamiento de programamdor. Tengo un muro alto por pasar, pero sigo. Saludos desde Argentina/Misiones exactamente. FELICES FIESTAS.

  • @firielcasselius4033
    @firielcasselius4033 4 года назад

    Raro. Cuando ingreso la primera vez va bien, hasta q le doy a sumar para poner con lo que voy a sumar, y me sale duplicado.
    Ej: escribo 1, le doy a sumar, oprimo el boton 2 y me sale "22" en pantalla.

  • @santiagogelmetti7107
    @santiagogelmetti7107 4 года назад +1

    alguno sabe porque da error si yo utilizo la forma de reulstado=resultado+int(Num)?

    • @ronnyblandon3982
      @ronnyblandon3982 3 года назад

      Igual a mi me da error en esa parte, no se como arreglarlo.

  • @alfeds6571
    @alfeds6571 6 лет назад

    Perdon si ya contestaste esto pero habra curso de django ¿? Ya estoy aprendiendo python con un libro pero igual despues me pasare por tu curso ❤

  • @Anthrax145
    @Anthrax145 6 лет назад

    Hola, gracias por tus videos son muy buenos me gustaria que me ayudaras a diseñar una interfaz para un programa de registro de un parqueadero, te agradeceria mucho si al menos me orientas como hacerlo.

  • @matiascaballero8466
    @matiascaballero8466 5 лет назад +3

    alguien pudo terminar ?? yo no pude continuar

  • @redadicto
    @redadicto 3 года назад

    Tengo una duda: Probe sacarle las etiquetas "global" a las variables para ver que pasaba y resulta que puedo ejecutar el programa pero al pulsar un tecla de la caltuladora me arroja este error:
    if reset_pantalla!=False:
    UnboundLocalError: local variable 'reset_pantalla' referenced before assignment
    Lo que no entiendo es por que arroja ese error si en mis primeras lineas de codigo tengo lo siguiente:
    from tkinter import *
    operacion = ""
    reset_pantalla = False
    claramente reset_pantalla es una variable global y tiene ya un vaor asignado. entiendo que el programa no deberia funcionar correntamente, pero no entiendo por que arroja ese error : - /

    • @redadicto
      @redadicto 3 года назад

      bueno ya entendi por que arroja ese error. Si a alguien le interesa saber por que, me avisa ;-)

    • @gabrielgonzalezmelgarejo
      @gabrielgonzalezmelgarejo Год назад

      @@redadicto porque arroja ese error bro?

    • @redadicto
      @redadicto Год назад

      @@gabrielgonzalezmelgarejo lamentablemente no se pude volver al mundo de la programacion. termino la pandemia y tuve que volver a mi trabajo y ya no me quedo tiempo para esto. Y ya pasaron 2 años. La verdad ya no me recuerdo por que habra sido 😕

  • @paollarce5137
    @paollarce5137 5 лет назад

    Muy bueno el video. Se puede hacer que la pantalla ocupe 2 lineas? Intente hacer lo mismo que hiciste para que le pantalla ocupe 4 columnas, pero al colocar rowspan=3 no pasaba nada. La pantalla negra se quedaba del mismo grosor, en una linea.

    • @fdo.eduardo1925
      @fdo.eduardo1925 4 года назад

      la pantalla como sabes es un Entry y por definición del widget está hecho para ingresar Una solo línea de texto. Si requieres otra debes usar un text o bien dos entry, todo depende de lo que quieras hace. En mi modesta opinión...

  • @duvanm2483
    @duvanm2483 6 лет назад

    hola, profesor. Estoy en este video del curso y quiero- para practicar- crear una calculadora mas compleja que pueda hacer limites, derivadas e integrales, crees que seria mejor usar modulos en lugar de hacerlo todo en un solo archivo?
    quiero usar sympy, ya que me parece una muy buena libreria. Gracias de antemano
    aprovecho ademas para agradecerle por todo el esfuerzo que pone en estos videos, la verdad la OOP no la entendia bien, pero ya me quedo claro. Perdon por las tildes, mi teclado no las tiene

  • @lauracristinabermudezmonto9493
    @lauracristinabermudezmonto9493 4 года назад

    Como crear el boto C para limpiar la pantalla?
    def limpiar():
    global operacion
    operacion=("")
    numeroPantalla.set(operacion)
    esto no me funcionó...ayuda por favor

    • @silln
      @silln 3 года назад

      Puedes usar lo siguiente...
      def limpiar():
      pantalla.delete(0, END)

    • @jesusgerardonicaciomorales2134
      @jesusgerardonicaciomorales2134 3 года назад

      Yo usé un booleano donde 'False' es borrar un número y True es borrar todo:
      def borrarTeclado(delete):
      if(delete==True):
      pantalla.delete(0,END)
      pantalla.insert(0,"0")
      else:
      txt=pantalla.get()[:-1] # Copiamos desde el primer número hasta el penúltimo.
      pantalla.delete(0,END) # Borramos todo.
      pantalla.insert(0,txt) # Pegamos el desde el primer número hasta el penúltimo (i.e. borrar el último).
      if(len(pantalla.get())==0):
      pantalla.insert(0,"0")
      Ya sólo llamas dos nuevos botones. Yo hice estos:
      botonBorrarAll=Button(miFrame,text="Del",width=3, command=lambda:borrarTeclado(True))
      botonBorrarAll.grid(row=2,column=3)
      botonBorrar=Button(miFrame,text="

  • @josemar9416
    @josemar9416 4 года назад

    Hola...
    Estoy siguiendo el curso y tengo un proyecto en el que me he atascado en lo más sencillo, creo.
    El frame ya lo tengo en fullscreen con la función miFrame.pack(fill="both",expand=1)
    Pero al introducir el fondo, una imagen png de un plano, la imagen no cabe, la he reducido de 25Kb
    a 11Kb y no cabe en el frame, solo entra una cuarta parte.
    Alguien sabe como hacerlo???
    Saludos.

    • @gironperegrinaramonalonso3897
      @gironperegrinaramonalonso3897 4 года назад

      Cual ese el tamaño de tu frame y el de tu imagen?. Mira el frame tiene que ser del mismo tamaño que tu imagen ademas la imagen no se tiene que redimencionar.

    • @josemar9416
      @josemar9416 4 года назад

      @@gironperegrinaramonalonso3897
      Hola
      Gracias por la rápida respuesta.
      Aprovecho para felicitarte por el curso.
      El tamaño de la foto es 1600x1280 y el frame tiene el mismo.
      Uso estas institrucciones
      miFrame.pack(full="both", expand="True")
      miFrame.config(width="1600", height="1280")
      Y la raíz no tiene atributos para que se ajuste al frame...
      Saludos

    • @josemar9416
      @josemar9416 4 года назад

      Hola...
      Ya le conseguido reduciendo el tamaño de la imagen...
      Gracias...

  • @ralsim5308
    @ralsim5308 6 лет назад +3

    Eres algo parecido a un genio cruzado con angel

  • @segurançaCyber0
    @segurançaCyber0 6 лет назад +2

    posta mais videos de python por favor

  • @damafe
    @damafe 5 лет назад

    Llevo tiempo intentando lo del float y no me sale... el programa no reconoce la coma como el simbolo de decimales, y no se como hacerlo, a ver si en proximos videos lo explica :)
    lo consigo, pero con lineas como esta, que es complicado de entender:
    numeroPantalla.set((str((resultado+float((numeroPantalla.get()).replace(",","."))))).replace(".",","))
    sustituyendo las comas por puntos, pasando a float, sumando, transformando a string, y finalmente cambiando los puntos por comas para que en pantalla se sigan viendo comas.

    • @arianablanco2419
      @arianablanco2419 3 года назад

      yo solo cambie la coma por el punto es esta parte:
      command=lambda:numeroPulsado('.')

  • @danieldiaz-oe4up
    @danieldiaz-oe4up 4 года назад

    me da un error estoy usando python 2.7.7

  • @redmaytals
    @redmaytals 6 лет назад +6

    Buenas....el código, bajo este mensaje, funciona mal con los decimales. Les dejo un el nuevo código en formato .pyw y compilado en un .exe para quien quiera probarlo. Saludos
    drive.google.com/open?id=1fhSWKIaImbNUCZPf5rNtrgVqcODvoLM0

    • @jkveri2002
      @jkveri2002 4 года назад

      Wow tío, eres mi ídolo xd

    •  2 года назад

      mil gracias.

  • @tomasmele4922
    @tomasmele4922 3 года назад

    9:50

  • @juanjososa7558
    @juanjososa7558 5 лет назад +1

    nunca me anduvo la calculadora por que mi python no quiere cambiar el StringVar a numero entero, si a alguien le paso y sabe como ayudarme se lo agradecere...

    • @damafe
      @damafe 5 лет назад +1

      yo entiendo que el stringvar es un string por definicion. Lo que hay que transformar en entero es numeroPantalla.get()

    • @nickenbrote
      @nickenbrote 5 лет назад

      resultado += int(num)
      por:
      resultado += int(numeroPantalla.get())

  • @sistemasmatematicos1092
    @sistemasmatematicos1092 5 лет назад +1

    Aquí ya me perdí un poco

  • @reelalfer7212
    @reelalfer7212 6 лет назад

    añades global sin explicar nada, fantastico, en la linea de tu anterior video

  • @sergiolopez-iy1tg
    @sergiolopez-iy1tg 5 лет назад

    me pueden ayudar, me sale este error y tengo todo igual al tutorial , minuto 13:48
    TypeError: unsupported operand type(s) for +=: 'int' and 'method'

    • @nickenbrote
      @nickenbrote 5 лет назад

      resultado += int(num)
      por:
      resultado += int(numeroPantalla.get())

    • @emilianoescobedo1104
      @emilianoescobedo1104 4 года назад

      @@nickenbrote A mí me sigue sin funcionar, me tira exactamente el mismo error

    • @tomaslencina4110
      @tomaslencina4110 4 года назад

      @@emilianoescobedo1104 Cuando es asi, solo cambialo, es lo mismo que decir "RESULTADO = RESULTADO + NUM"

  • @aguxtinneira5201
    @aguxtinneira5201 2 года назад +2

    Hola, si alguien puede ayudarme, tengo un problema que no puedo entender en las siguientes lineas.
    resultado+=int(num) # line 48, in suma resultado += int(num)
    botonSuma=Button(miFrame, text="+", width=3, command=lambda:suma(numeroPantalla.get)) # line 87, in botonSuma=Button(miFrame, text="+", width=3, command=lambda:suma(numeroPantalla.get))
    Me da error de identacion y TypeError: int() argument must be a string, a bytes-like object or a real number, not 'method'.
    Me trabe, no logro solucionarlo y me frustre. Si alguien me puede iluminar por favor

    • @aguxtinneira5201
      @aguxtinneira5201 2 года назад

      Si alguien llega a tener el mismo problema la solucion es agregar un par mas de () en ==> suma(numeroPantalla.get()))

  • @andrewandrade7137
    @andrewandrade7137 5 лет назад

    AYUDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

  • @66pulsario
    @66pulsario 4 года назад

    Ya no le creo, el programa del vídeo presenta un error en la linea 48 al minuto 2:15 no entiendo como le funciona si PHYTON cuando detecta una linea de error no permite continuar, pienso que estos vídeos son editados para engañar al publico mal hecho de su parte, yo monte ese programa y presenta errores de compilación.

    • @Nerxeas
      @Nerxeas 4 года назад +5

      Que no te funcione a ti, no indica que no le funcione a los demás. Lee los comentarios y revisa cuantas quejas hay de tu mismo caso y verás lo nulo que es.
      Antes de culpar al otro, revisate a ti mismo. Aprenderás mucho de ese modo.

    • @pildorasinformaticas
      @pildorasinformaticas  4 года назад +7

      jajajajajajaja esto es ya lo que me faltaba por leer. "Engañar al público". Después de 20 años dando clases presenciales, te puedo decir que el error de tu programa se encuentra entre el teclado y la silla. Lee estos comentarios para que veas cómo engaño al público: www.pildorasinformaticas.es/archivos/menciones.html

    • @pildorasinformaticas
      @pildorasinformaticas  4 года назад +2

      Antes de hacer acusaciones tan gruesas, sobre todo si estás aprendiendo a programar, tómate la molestia de comprobar cuidadosamente que tu sintaxis es correcta y también que todo el software está correctamente instalado en tu máquina. Un saludo!

    • @66pulsario
      @66pulsario 4 года назад

      JAJAJA "Profesor" yo hablo por mi no por los demas, si explica un código que no funciona para que hace perder el tiempo, tantos códigos de calculadoras que hay en internet y mejores que si funcionan escoja uno expliqué sobre él y no haga perder el tiempo a la gente "profesor".

    • @liliaarroyofranco5225
      @liliaarroyofranco5225 4 года назад +3

      @@66pulsario Sabes a mi me ha pasado varias veces eso... y es por que la version que usa para enseñar en el video y la que yo uso para practicar son diferentes, fijate en que año se hizo el video en el año 2018, estamos en el 2020, obviamente habran cosas diferentes.. Lo que yo hago para solucionarlo es googlear y muchas veces me ha tocado cambiar el codigo y eso no es por que el chico que hace el video nos engañe si no por que son versiones diferentes, y ademas yo uso Kali Linux y cambia en algunas cosas la sintaxys... Pero ademas de eso, todo me a funcionado bien, si alguna funcion o codigo que escribe en el video no me funciona, voy y busco en google cual es la nueva sintaxys para mi version en linux... modifico y magicamente me funciona todo

  • @carlosarmona5307
    @carlosarmona5307 2 года назад

    Ha decaido mucho este curso.. es como ver stark ever flow.. solo ver que colocar.. pero sin entender a fondo los conceptos nuevos...

    • @santiagoargayo778
      @santiagoargayo778 Год назад +1

      Naa, simplemente se complica y hay gente que no puede mantener el ritmo.