Para aportar, en la linea 5 se crea el espacio en memoria, luego la linea 9 rellena el espacio creado con numeros. -Augusto class Calculadora: def __init__(self, numero): self.n=numero self.dato = [0 for i in range(numero)]#crea el espacio para dos lugares print(self.dato) # y dato queda un vector. def llamarDato(self): #rellena con numeros self.dato self.dato=[int(input("Ingrese el "+str(i+1)+" numero -> ")) for i in range(self.n)] class Suma(Calculadora): def __init__(self): Calculadora.__init__(self,2) def suma(self): s=self.dato[0]+self.dato[1] print("la suma es ", s) sum = Suma() sum.llamarDato() sum.suma()
Entre más y más veo este curso me hace sentir bien con migo mismo pues me genera una gran sensación por seguri viendo y viendo para ond er todo en practica con mi vida cotidiana...🤠
Cuando se simplifican las líneas de código en uno solo en ocasiones me parece confuso, pero también eficiente. Gracias, una muy buena idea explicación ✨
Este ejercicio me ayudó bastante a resolver algunas dudas que tenía sobre realizar algunas de las operaciones Como por ejemplo en este caso fue la de la calculadora ya me quedó un poco más claro de cómo se realizan las operaciones
La herencia es muy importante de aprender y aunque el algunas cosas tuve fallas después pude lograr realizar el ejercicio correctamente Es muy bueno aprender cosas nuevas
Hola Yacklyon. Me encantan tus cursos y sobretodo la forma en la cual los explicas. Es de lo mejor que he encontrado sobre Python. La forma en que das las lecciones son superdidácticas. Esa dedicación y tiempo que te das en explicar las cosas más insignificantes, es ciertamente muy de agradecer e insuperable. No sabes la de veces que 'la cosa más tonta' hace que estemos minutos interminables intentando averiguar qué es lo que sucede. Ahora pues, tengo una pregunta con respecto al ejercicio 8 de CURSO de PYTHON 2020 HERENCIA En el constructor de la Calculadora. Inicializamos la lista: self.datos = [0 for i in range (num)] Esa misma lista de 'datos' la volvemos a abordar exactamente igual en el método 'ingresardato' pero con 'input' así: self.datos = [ int (input('Ingresar datos: ' + str (i + 1) + ' = ')) for i in range (self.n) ] Pues bien. Si inicializamos esa lista en constructor con estos valores : self.datos = [0] self.datos = 0 selft.datos = '' o simplemente eliminamos esa línea en el constructor. La rutina funciona perfectamente. Mi pregunta es obvia : ¿por qué utilizas 'self.datos = [0 for i in range (num)]' en el constructor si no es realmente necesario? ¿o me equivoco? De nuevo muchas gracias por tus cursos y tiempo.
Hola, te cuento que me ha encantado tu curso de POO, explicas súper bien, me ha despejado muchas dudas, pues la verdad había hecho un curso de Python, pero había quedado con muchas lagunas, agradezco haber podido ver tus videos, no imaginas como me han servido||... comparto mi código propiesto para este ejercicio # EJEMPLO PRACTICO DE HERENCIA # Clase Padre class Calculadora: # Introducimos el constructor def __init__(self, numero): # Caracteristicas o atributos de la calculadora self.n = numero # se crea un bucle para iterar desde cero hasta el numero que hayamos escogido, como cantidad de operandos self.datos = [0 for i in range(numero)] # Método para llamar los datos def ingresardato(self): # ingresar los valores a operar self.datos = [int(input('Ingrese dato '+ str(i+1)+ ' = ')) for i in range(self.n)] #Clase Hija class Ope_Basicas(Calculadora): def __init__(self): Calculadora.__init__(self,2)
def suma(self): a,b, = self.datos s = a + b print('Suma {} + {} = {}'.format(a, b, s))
def resta(self): a,b, = self.datos r = a - b print('Resta {} - {} = {}'.format(a, b, r))
def mult(self): a,b, = self.datos m = a * b print('Multiplicación {} * {} = {}'.format(a, b, m))
def div(self): a,b, = self.datos d = float(a / b) print('Resta {} / {} = {}'.format(a, b, round(d,2))) # Clase hija class Raiz(Calculadora): def __init__(self): Calculadora.__init__(self,1)
def cuadrada(self): import math # Permite usar funciones directas a travez de librerias a, = self.datos print('Raiz {} ^ (1/2) = {}: '.format(a, round(math.sqrt(a),2)))
# Ejecutar el código calculo = int(input('Ingrese el cálculo que desea realizar: 1. Operaciones Básicas 2. Raíz
')) if calculo == 1: op_bas = Ope_Basicas() print(op_bas.ingresardato()) op = int(input('Ingrese la operación a realizar: 1. Suma 2. Resta 3. Multiplicación 4. Division
')) if op == 1: print(op_bas.suma()) elif op == 2: print(op_bas.resta()) elif op == 3: print(op_bas.mult()) elif op == 4: print(op_bas.div()) elif calculo == 2: raiz_cuadrada = Raiz() print(raiz_cuadrada.ingresardato()) print(raiz_cuadrada.cuadrada())
Espero que tu canal no solo quede estancado con los pocos seguidores que tienes en este momento, sino que se llene tu canal de personas que les guste la programación como a mi!✊🏾
Buenos videos pero nunca explicas al principio lo que quieres llegar a programar. Estaría bien plantear un objetivo: por ejemplo " calculadora que haga las operaciones de suma, resta y producto de 1,2 o 3 numeros y luego hacer la programación. Saludos desde Galicia.
una duda : ¿no deberias haber utilizado return en lugar de print ya que utilizar print cuando se define una funcion hace que añ correr el codigo aparezca None?
Muy buena explicación, esto para mí me sirve de mucho, ya que no entendí tanto la herencia pero con el ejemplo queda más claro, y aparte me hace ver qué no es tan difícil como pensaba
Gracias por este curso yo antes ya había hecho una calculadora pero sin herencias class Calculadora: def __init__(self): n1 = int(input("Introduce el primer número: ")) n2 = int(input("Introduce el segundo número: ")) self.suma = n1 + n2 self.resta = n1 - n2 self.multiplicacion = n1 * n2 self.division = n1 / n2 x = Calculadora() perro = int(input( """ [1]-Suma [2]-Resta [3]-Multiplicacion [4]-Division Introduce la operación con la que quieras trabajar: """)) try: if perro == 1: print("El resultado de la suma es: ", x.suma) elif perro == 2: print("El resultado de la resta es: ", x.resta) elif perro == 3: print("El resultado de la multiplicación es: ", x.multiplicacion) elif perro == 4: print("El resultado de la división es: ", x.division) else: print("Está opción no existe") except AttributeError: pass Bueno soy completamente nuevo en esto de la programación 😅
En primer lugar te felicito por el curso es muy didáctico y se nota que le has dedicado tiempo. Aunque se entiende que el ejemplo de la calculadora no es lo central de la clase, al parametrizar por otro número que no sea 2 da un error "ValueError: too many values to unpack (expected 2)". Esto se podría solucionar usando una lista en lugar de variables fijas? Saludos.
A fecha que estoy viendo este video, y usando Visual Studio Code, puedo decir que probablemente haya algún error si se trata de correr el programa así como el ejemplo, ya que en las class que son "hijos" de Calculadora se debe de tener en cuenta este arreglo: class Operacionesbasicas(Calculadora): def __init__(self, numero): super().__init__(numero) Aunque "numero" dentro de los parámetros del __init__ se puede omitir y seguir con lo que se visualiza en el video. O más claro, reemplazas Calculadora.__init__(self,2) por super().__init__(2) Prácticamente con eso pude solucionar el problema que me surgía al estar copiando el ejercicio del video, por lo demás, todo está excelente. Aclaro que esto igualmente lo estoy aprendiendo, así que esto lo tuve que indagar en internet.
Seria chévere que a tu curso de Python le agregaras un curso de Tkinter :) Psdta: Gracias por tu contenido y por el esfuerzo que le pones, me has ayudado un montón.
Muy bueno el video, pero solo queria agregar que el Pycharm me hizo notar que el código corre igual sin la linea 6 "self.datos = [0 for i in range(numero)]", quiza la agregaste de forma didáctica? como sea, de resto, gracias por tus aportes, saludos!!
@@nichihana1779 Agrega el 0 pero, no tiene ninguna funcionalidad, como dice un senior mas arriba que crea espacio en memoria es completamente distinto, puesto que luego lo renombras osea cambias el objeto por uno nuevo, y no llegas a usar los 2 ceros en ningun momento
En el ultimo ejemplo de raiz no me funciono tuve que ponerle (1) al ejemplo raiz asi: ejemplo = raiz(1) print(ejemplo.ingresardato()) print(ejemplo.cuadrada())
Si te quieres ahorrar las conversiones en las impresiones puedes usar el f-string (creo que asi se llamaba) consiste en: print(f" tu texto y { aqui va el valor que quieres imprimir}")
Hola como estan todos? Primero que todo graciaspor el curso! sos un genio te estoy muy agredecido me das muchas ganas de seguir aprendiendo. Por otro lado tengo este problema: self.datos = [0 for i range(numero)] ^ SyntaxError: invalid syntax la linea de codigo esta copiada tal cual, cualseriael error? Version de Python 3.8.2/32Bit agredeceria si me sacaran de la duda, gracias! Saludos
falta en 'in' parece no? self.datos = [0 for i IN range(numero)] SyntaxError: invalid syntax = error de sintaxis, error de escritura de codigo, no reconoce lo escrito, etc...
debo decir que es el primer video de este canal en el que no siento que se haya dado una buena explicacion, mucho menos detallada, se dejan mucha cosas al aire.
es por que esta llamado un print dentro de otro print, en las lineas de abajo luego de crear el objeto no es necesario poner print solo ejemplo.ingresardato(), igual para los demas y ya no te imprime el none, eso para por que en los métodos ya tenemos el print, saludos.
Quiere crear un arreglo con tantos 0 sea necesario, es decir si número es dos al iniciar self.dato seria [0,0] ya después en ingresardato cambia los valores de self.dato
Traceback (most recent call last): File "calculadora orientada a obejtos.py", line 35, in print(ejemplo.ingresardato()) File "calculadora orientada a obejtos.py", line 9, in ingresardato self.datos = [int(input("ingresar datos "+str(i+1)+ " =")) for i in range(self.n)] AttributeError: 'op_basicas' object has no attribute 'n'
# calculadora class Calculadora: def _init_(self,numero): self.n =numero self.datos = [0 for i in range(numero)] def ingresardato(self): self.datos = [int(input("ingresar datos "+str(i+1)+ " =")) for i in range(self.n)] class op_basicas(Calculadora): def _init_(self): Calculadora._init_(self,2) def suma(self): a,b, = self.datos s = a + b print ("el resultado es ",s) def resta(self): a,b, = self.datos r = a - b print ("el resultado es ", r) class Raiz(Calculadora): def _init_(self): Calculadora._init_(self,1) def cuadrada(self): import math a, = self.datos print("el resultado es ",math.sqrt(a)) ejemplo = op_basicas() print(ejemplo.ingresardato()) print(ejemplo.suma())
Muchas gracias por el curso gratis. Pero tengo una pregunta hago tal cual el ejemplo y me marca cero en todas las operaciones, lo revise varias veces y no encontre ningun error, y lo turro que tampoco marca error solo el codigo no hace lo que quiero. Como puedo solucionarlo. Muchas gracias
@@yacklyon5993 class calculadora: def __init__(self,numero): self.n = numero self.datos =[0 for i in range(numero)] def ingresardato(self): self.dato=[int(input('ingrese dato '+ str(i+1) + ' = '))for i in range(self.n)] class op_basicas(calculadora): def __init__(self): calculadora.__init__(self,2) def suma(self): a,b = self.datos s = a + b print('el resultado es: ',s) def resta(self): a,b,=self.datos r = a-b print('el resultado es: ',r) class raiz(calculadora): def __init__(self): calculadora.__init__(self,1) def cuadrada(self): import math a,=self.datos print('el resultado es: ',math.sqrt(a)) ejemplo=op_basicas() print(ejemplo.ingresardato()) print(ejemplo.suma()) asi esta el codigo y aun las operaciones me salen como resultado cero ya actualice e; IDLE y aun tiene el mismo problema. Porfa como soluciono ese problema si el codigo esta bien y el entorno de trabajo tambien, que mas podria ser. gracias por tu tiempo LYON, enseñas muy bien
@@7chicleypega191 creo que es la versión de python o algo en el código porque lo probé en otro idle y nada, si encuentro la solución te la paso por aquí, Luego pruebo otras opciones ya si no encuentro lo solucionare cuando sepa bien el lenguaje ✌️
a, = self.d Consulta. Por qué se pone la come después de la "a" ?
Para aportar, en la linea 5 se crea el espacio en memoria, luego la linea 9 rellena el espacio creado con numeros. -Augusto
class Calculadora:
def __init__(self, numero):
self.n=numero
self.dato = [0 for i in range(numero)]#crea el espacio para dos lugares
print(self.dato) # y dato queda un vector.
def llamarDato(self):
#rellena con numeros self.dato
self.dato=[int(input("Ingrese el "+str(i+1)+" numero -> ")) for i in range(self.n)]
class Suma(Calculadora):
def __init__(self):
Calculadora.__init__(self,2)
def suma(self):
s=self.dato[0]+self.dato[1]
print("la suma es ", s)
sum = Suma()
sum.llamarDato()
sum.suma()
Entre más y más veo este curso me hace sentir bien con migo mismo pues me genera una gran sensación por seguri viendo y viendo para ond er todo en practica con mi vida cotidiana...🤠
gracias por aclararme las dudas al momento de realizar una calculadora simple y sus funciones
Cuando se simplifican las líneas de código en uno solo en ocasiones me parece confuso, pero también eficiente. Gracias, una muy buena idea explicación ✨
🙄 si mano eso me confunde mucho y dicen que es fácil 😏
como quisiera que tu canal creciera.
Ayuda mucho a reforzar los conocimientos que ya tengo, de una manera sencilla..
Este ejercicio me ayudó bastante a resolver algunas dudas que tenía sobre realizar algunas de las operaciones Como por ejemplo en este caso fue la de la calculadora ya me quedó un poco más claro de cómo se realizan las operaciones
Con un ejemplo sencillo se entienden mejor los procedimientos. Buen video ✨
La herencia es muy importante de aprender y aunque el algunas cosas tuve fallas después pude lograr realizar el ejercicio correctamente
Es muy bueno aprender cosas nuevas
Hola Yacklyon. Me encantan tus cursos y sobretodo la forma en la cual los explicas.
Es de lo mejor que he encontrado sobre Python.
La forma en que das las lecciones son superdidácticas. Esa dedicación y tiempo que te das en explicar las cosas más insignificantes,
es ciertamente muy de agradecer e insuperable. No sabes la de veces que 'la cosa más tonta' hace que estemos
minutos interminables intentando averiguar qué es lo que sucede.
Ahora pues, tengo una pregunta con respecto al ejercicio 8 de CURSO de PYTHON 2020 HERENCIA
En el constructor de la Calculadora. Inicializamos la lista:
self.datos = [0 for i in range (num)]
Esa misma lista de 'datos' la volvemos a abordar exactamente igual en el método 'ingresardato' pero con 'input' así:
self.datos = [ int (input('Ingresar datos: ' + str (i + 1) + ' = ')) for i in range (self.n) ]
Pues bien. Si inicializamos esa lista en constructor con estos valores :
self.datos = [0]
self.datos = 0
selft.datos = ''
o simplemente eliminamos esa línea en el constructor. La rutina funciona perfectamente.
Mi pregunta es obvia : ¿por qué utilizas 'self.datos = [0 for i in range (num)]' en el constructor si no es realmente necesario?
¿o me equivoco?
De nuevo muchas gracias por tus cursos y tiempo.
Hola, te cuento que me ha encantado tu curso de POO, explicas súper bien, me ha despejado muchas dudas, pues la verdad había hecho un curso de Python, pero había quedado con muchas lagunas, agradezco haber podido ver tus videos, no imaginas como me han servido||...
comparto mi código propiesto para este ejercicio
# EJEMPLO PRACTICO DE HERENCIA
# Clase Padre
class Calculadora:
# Introducimos el constructor
def __init__(self, numero):
# Caracteristicas o atributos de la calculadora
self.n = numero
# se crea un bucle para iterar desde cero hasta el numero que hayamos escogido, como cantidad de operandos
self.datos = [0 for i in range(numero)]
# Método para llamar los datos
def ingresardato(self):
# ingresar los valores a operar
self.datos = [int(input('Ingrese dato '+ str(i+1)+ ' = ')) for i in range(self.n)]
#Clase Hija
class Ope_Basicas(Calculadora):
def __init__(self):
Calculadora.__init__(self,2)
def suma(self):
a,b, = self.datos
s = a + b
print('Suma {} + {} = {}'.format(a, b, s))
def resta(self):
a,b, = self.datos
r = a - b
print('Resta {} - {} = {}'.format(a, b, r))
def mult(self):
a,b, = self.datos
m = a * b
print('Multiplicación {} * {} = {}'.format(a, b, m))
def div(self):
a,b, = self.datos
d = float(a / b)
print('Resta {} / {} = {}'.format(a, b, round(d,2)))
# Clase hija
class Raiz(Calculadora):
def __init__(self):
Calculadora.__init__(self,1)
def cuadrada(self):
import math # Permite usar funciones directas a travez de librerias
a, = self.datos
print('Raiz {} ^ (1/2) = {}: '.format(a, round(math.sqrt(a),2)))
# Ejecutar el código
calculo = int(input('Ingrese el cálculo que desea realizar:
1. Operaciones Básicas
2. Raíz
'))
if calculo == 1:
op_bas = Ope_Basicas()
print(op_bas.ingresardato())
op = int(input('Ingrese la operación a realizar:
1. Suma
2. Resta
3. Multiplicación
4. Division
'))
if op == 1:
print(op_bas.suma())
elif op == 2:
print(op_bas.resta())
elif op == 3:
print(op_bas.mult())
elif op == 4:
print(op_bas.div())
elif calculo == 2:
raiz_cuadrada = Raiz()
print(raiz_cuadrada.ingresardato())
print(raiz_cuadrada.cuadrada())
Espero que tu canal no solo quede estancado con los pocos seguidores que tienes en este momento, sino que se llene tu canal de personas que les guste la programación como a mi!✊🏾
Buenos videos pero nunca explicas al principio lo que quieres llegar a programar. Estaría bien plantear un objetivo: por ejemplo " calculadora que haga las operaciones de suma, resta y producto de 1,2 o 3 numeros y luego hacer la programación.
Saludos desde Galicia.
es un ejemplo sencillo pero se entienden muy bien los videos
Eficiente video me costo trabajo comprender me perdia con facilidad pero con practica todo se puede buen video
una duda : ¿no deberias haber utilizado return en lugar de print ya que utilizar print cuando se define una funcion hace que añ correr el codigo aparezca None?
Muy buena explicación, esto para mí me sirve de mucho, ya que no entendí tanto la herencia pero con el ejemplo queda más claro, y aparte me hace ver qué no es tan difícil como pensaba
es un buen ejemplo, sencillo y tu explicacion es muy bueno asi queda mas claro el tema de herencia
Gracias por este curso yo antes ya había hecho una calculadora pero sin herencias
class Calculadora: def __init__(self):
n1 = int(input("Introduce el primer número: "))
n2 = int(input("Introduce el segundo número: "))
self.suma = n1 + n2
self.resta = n1 - n2
self.multiplicacion = n1 * n2 self.division = n1 / n2
x = Calculadora()
perro = int(input( """
[1]-Suma
[2]-Resta
[3]-Multiplicacion
[4]-Division
Introduce la operación con la que quieras trabajar: """)) try: if perro == 1: print("El resultado de la suma es: ", x.suma) elif perro == 2:
print("El resultado de la resta es: ", x.resta) elif perro == 3: print("El resultado de la multiplicación es: ", x.multiplicacion) elif perro == 4: print("El resultado de la división es: ", x.division)
else:
print("Está opción no existe")
except AttributeError: pass
Bueno soy completamente nuevo en esto de la programación 😅
me pareció muy interesante la forma en que explico avía cosas que desconocía y hora me quedan un poco mas claras
avía es con H y con B, HABÍA. De nada.
Muy buen vídeo para obtener el mejor aprendísaje y mejorar en la aplicación de herencia entre clases
Interesante vídeo ahora se la funcionalidad de la herencia aplicada en matemáticas
Esta manera no la conocía que bien es cuando aprendemos cosas nuevas
La herencia es compleja y me gusta mucho q le hayas dado su lugar
muy bueno el ejemplo, solo dejo como sugerencia la posibilida de ver el respositorio, salu2!
Con este ejercicio ya quedó un poco más entendido sobre la herencia buena explicación
Fue un ejercicio corto y bastante claro para comprender lo que es herencia...
En primer lugar te felicito por el curso es muy didáctico y se nota que le has dedicado tiempo. Aunque se entiende que el ejemplo de la calculadora no es lo central de la clase, al parametrizar por otro número que no sea 2 da un error "ValueError: too many values to unpack (expected 2)". Esto se podría solucionar usando una lista en lugar de variables fijas? Saludos.
A fecha que estoy viendo este video, y usando Visual Studio Code, puedo decir que probablemente haya algún error si se trata de correr el programa así como el ejemplo, ya que en las class que son "hijos" de Calculadora se debe de tener en cuenta este arreglo:
class Operacionesbasicas(Calculadora):
def __init__(self, numero):
super().__init__(numero)
Aunque "numero" dentro de los parámetros del __init__ se puede omitir y seguir con lo que se visualiza en el video. O más claro, reemplazas
Calculadora.__init__(self,2)
por
super().__init__(2)
Prácticamente con eso pude solucionar el problema que me surgía al estar copiando el ejercicio del video, por lo demás, todo está excelente. Aclaro que esto igualmente lo estoy aprendiendo, así que esto lo tuve que indagar en internet.
Seria chévere que a tu curso de Python le agregaras un curso de Tkinter :)
Psdta: Gracias por tu contenido y por el esfuerzo que le pones, me has ayudado un montón.
!Muchas Gracias! Este video como los anteriores me están ayudando mucho para reforzar mis conocimientos ;3
Queda muy bien explicado, las funciones de la calculadora
Siempre explica de una manera muy buena
Llamar a la clase calculadora dentro de otro metodo, solo para determinar con cuantos numeros va a trabajar es algo que no habia visto.
buenisimo. que bien explicado esta.
Muy buena práctica
self.datos = [0 for i in range(numero)] Porque el cero? y simplemente no colocar el cero dentro del range?
En tanto a aplicar bucles dentro de listas, no fue algo que explicaste en el basico, no me quedaron en claro ciertas cosas.
El código corre igual sin esa linea
Te puedes perder fácilmente pero lo explicas muy bien
Muy bueno el video, pero solo queria agregar que el Pycharm me hizo notar que el código corre igual sin la linea 6 "self.datos = [0 for i in range(numero)]", quiza la agregaste de forma didáctica? como sea, de resto, gracias por tus aportes, saludos!!
De acuerdo esa linea no le veo la funcionalidad.
Tengo una duda, para que serìa el " 0 ", dentro de los corchetes acompañando el for?
@@nichihana1779 Agrega el 0 pero, no tiene ninguna funcionalidad, como dice un senior mas arriba que crea espacio en memoria es completamente distinto, puesto que luego lo renombras osea cambias el objeto por uno nuevo, y no llegas a usar los 2 ceros en ningun momento
En C++ lo haría más corto, pero no deja de ser interesante probar Phyton
Excelente
me tranque
oye y entonces porque creaste el atributo self.n si lo usaras el atributo self.datos?
Muy buen video, me ayudaste a reforzar aun mas lo que pude aprender, excelente video
cuando quiero ejecutar print(ejemplo.ingresardato())
print(ejemplo.suma())
Es más complejo que los anteriores pero es muy interesante !
es muy simple pero es una buena base para algo mas elaborado
Con ejemplos sencillos se entienden los pasos para crear la herencia.
me agrada tu curso, excelentes explicaciones
excelente videos, tengo una pregunta por que se debe de ubicar así a,b,=self.datos y no self.datos=a,b,
X2
En el ultimo ejemplo de raiz no me funciono tuve que ponerle (1) al ejemplo raiz asi:
ejemplo = raiz(1)
print(ejemplo.ingresardato())
print(ejemplo.cuadrada())
Le entendí mejor a este video y creo que me ayudara mucho
Super video!
muy interesante amigo felicidades
La explicación me pareció muy interesante
en el def ingresar dato, en la parte que dice que ya vimos el str, en que capitulo fue?
anoto todo el curso en un cuaderno y no lo tengo...
Buena pregunta.
Si te quieres ahorrar las conversiones en las impresiones puedes usar el f-string (creo que asi se llamaba) consiste en:
print(f" tu texto y { aqui va el valor que quieres imprimir}")
Se usan cosas nueva solo es cuestión de implementar a lo que sabemos pero muy buena la explicación
Gracias por el video
ahora si ya no le entendi, quiza me faltan mas bases para comprender estos temas
Hola como estan todos? Primero que todo graciaspor el curso! sos un genio te estoy muy agredecido me das muchas ganas de seguir aprendiendo.
Por otro lado tengo este problema:
self.datos = [0 for i range(numero)]
^
SyntaxError: invalid syntax
la linea de codigo esta copiada tal cual, cualseriael error? Version de Python 3.8.2/32Bit
agredeceria si me sacaran de la duda, gracias! Saludos
falta en 'in' parece no?
self.datos = [0 for i IN range(numero)]
SyntaxError: invalid syntax = error de sintaxis, error de escritura de codigo, no reconoce lo escrito, etc...
debo decir que es el primer video de este canal en el que no siento que se haya dado una buena explicacion, mucho menos detallada, se dejan mucha cosas al aire.
Porque el 0 en el for???
cuando sale el resultado porque sale none?
es por que esta llamado un print dentro de otro print, en las lineas de abajo luego de crear el objeto no es necesario poner print solo ejemplo.ingresardato(), igual para los demas y ya no te imprime el none, eso para por que en los métodos ya tenemos el print, saludos.
tengo un problema con el ejemplo en la parte de raiz me da de resultado cero
3:31 Por qué pones el "0" antes del for?
Quiere crear un arreglo con tantos 0 sea necesario, es decir si número es dos al iniciar self.dato seria [0,0] ya después en ingresardato cambia los valores de self.dato
Buen vídeo
No sabia que se podia hacer una calculadora tan facil
Ayudas a que los conocimientos que uno tiene sean reforzados, gracias!
Traceback (most recent call last):
File "calculadora orientada a obejtos.py", line 35, in
print(ejemplo.ingresardato())
File "calculadora orientada a obejtos.py", line 9, in ingresardato
self.datos = [int(input("ingresar datos "+str(i+1)+ " =")) for i in range(self.n)]
AttributeError: 'op_basicas' object has no attribute 'n'
soy un bueno para nada que no ve el error u.u
# calculadora
class Calculadora:
def _init_(self,numero):
self.n =numero
self.datos = [0 for i in range(numero)]
def ingresardato(self):
self.datos = [int(input("ingresar datos "+str(i+1)+ " =")) for i in range(self.n)]
class op_basicas(Calculadora):
def _init_(self):
Calculadora._init_(self,2)
def suma(self):
a,b, = self.datos
s = a + b
print ("el resultado es ",s)
def resta(self):
a,b, = self.datos
r = a - b
print ("el resultado es ", r)
class Raiz(Calculadora):
def _init_(self):
Calculadora._init_(self,1)
def cuadrada(self):
import math
a, = self.datos
print("el resultado es ",math.sqrt(a))
ejemplo = op_basicas()
print(ejemplo.ingresardato())
print(ejemplo.suma())
@@miguelleon4105 Creo que tus constructores no los pusiste con doble guion bajo, por eso no te toma los atributos. __init__
Puedes compartir tu libro?
Muchas gracias por el curso gratis.
Pero tengo una pregunta hago tal cual el ejemplo y me marca cero en todas las operaciones, lo revise varias veces y no encontre ningun error, y lo turro que tampoco marca error solo el codigo no hace lo que quiero.
Como puedo solucionarlo.
Muchas gracias
puede ser el editor de código o la versión de python revisarlo
@@yacklyon5993 muchas gracias, haré eso
@@yacklyon5993 class calculadora:
def __init__(self,numero):
self.n = numero
self.datos =[0 for i in range(numero)]
def ingresardato(self):
self.dato=[int(input('ingrese dato '+ str(i+1) + ' = '))for i in range(self.n)]
class op_basicas(calculadora):
def __init__(self):
calculadora.__init__(self,2)
def suma(self):
a,b = self.datos
s = a + b
print('el resultado es: ',s)
def resta(self):
a,b,=self.datos
r = a-b
print('el resultado es: ',r)
class raiz(calculadora):
def __init__(self):
calculadora.__init__(self,1)
def cuadrada(self):
import math
a,=self.datos
print('el resultado es: ',math.sqrt(a))
ejemplo=op_basicas()
print(ejemplo.ingresardato())
print(ejemplo.suma())
asi esta el codigo y aun las operaciones me salen como resultado cero ya actualice e; IDLE y aun tiene el mismo problema.
Porfa como soluciono ese problema si el codigo esta bien y el entorno de trabajo tambien, que mas podria ser.
gracias por tu tiempo LYON, enseñas muy bien
@@adrianarteaga752 me pasa lo mismo
@@7chicleypega191 creo que es la versión de python o algo en el código porque lo probé en otro idle y nada, si encuentro la solución te la paso por aquí, Luego pruebo otras opciones ya si no encuentro lo solucionare cuando sepa bien el lenguaje ✌️
Muy bueno , te sigo....saludos
quisiera que alguien me explique la linea de self.datos no entiendo cono es que guarda los datos en ambos métodos de la clase padre
me dice print(ejemplo.ingresardato())
^^^^^^^^^^^^^^^^^^^^
AttributeError: 'Op_basicas' object has no attribute 'ingresardato'
Seria mejor usar nombres mas descriptivos para las variables de los resultados.
lo único que no me agrado mucho es que se perdió la imagen de el vídeo y no alcance a distinguir el código ala perfectamente
Las clases se declaran con la primer letra en MAYUSCULA
q locura
bendito 2x
:,3 dxdxd
NoExplicas bien
Porfavor deja de DECIR OKEEEYY!!!! es muy incómodo. Gracias