Mayo 22, 2018, 12:03:57 am

Autor Tema: Dudas con clases en python  (Leído 1196 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado YoSoyRDV

  • Me das tu IP?
  • *
  • Mensajes: 45
  • Sexo: Masculino
    • Ver Perfil
Dudas con clases en python
« en: Abril 25, 2018, 08:05:38 am »
Hola, ¿cómo están?
Es mi primer programa de práctica con la poo y me surgen 2 dudas, la primera, es coherente la creación del objeto(instanciar la clase) dentro del bucle, no logro crearlo antes del mismo, por más que le pase los parámetros me da error y lo segundo ¿ qué debo cambiar para mejorarlo y aprender ?. -
Tengo claro que debo validar que los ingresos sean correctos, pero lo hice de esa manera para que sea más fácil para Uds. ayudarme.

Código: You are not allowed to view links. Register or Login
#23/04/2018 mi primer programa con clases

class calculos():
def __init__(self, oprUno, oprDos):
self.oprUno = oprUno
self.oprDos = oprDos

def suma(self):
return float(self.oprUno) + float(self.oprDos)

def resta(self):
return float(self.oprUno) - float(self.oprDos)

def divide(self):
return float(self.oprUno) / float(self.oprDos)

def multiplica(self):
return float(self.oprUno) * float(self.oprDos)

def modulo(self):
return int(self.oprUno) % int(self.oprDos)

Código: You are not allowed to view links. Register or Login
from calculos import*

while True:
oprUno = input('\n Ingrese primer  operando...: ')
oprDos = input('\n Ingrese segundo operando...: ')

opc = input('\n 1 - Suma \n 2 - Resta \n 3 - Divide'
'\n 4 - Multiplica \n 5 - Módulo'
'\n\n Ingrese opción....:')

calc = calculos(oprUno, oprDos)

if opc == '1':
print(f'\n {oprUno} + {oprDos} = {calc.suma()}')
elif opc == '2':
print(f'\n {oprUno} - {oprDos} = {calc.resta()}')
elif opc == '3':
print(f'\n {oprUno} / {oprDos} = {calc.divide()}')
elif opc == '4':
print(f'\n {oprUno} * {oprDos} = {calc.multiplica()}')
elif opc == '5':
print(f'\n {oprUno} % {oprDos} = {calc.modulo()}')

opc = input('\n 1 - Continua \n 2 - Finaliza'
'\n\n Ingrese opción...:')
if opc != '1':
break


Desde ya muchas gracias por el tiempo que le dediquen.
Saludos.
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor
y cuando lo abrazas dejan de causar dolor.-

Desconectado Solid Water

  • Yo vivo en CPH
  • ***
  • Mensajes: 1127
  • Sexo: Masculino
  • Vuelvan Hackers!
    • Ver Perfil
Re:Dudas con clases en python
« Respuesta #1 en: Abril 25, 2018, 09:14:38 pm »
No sé por qué dices que no puedes instanciarlo fuera del bucle.

Código: You are not allowed to view links. Register or Login
from calculos import*

objeto = calculos(1, 2)
print(f'\n 1 + 2 = {objeto.suma()}')


while True:
        oprUno = input('\n Ingrese primer  operando...: ')
        oprDos = input('\n Ingrese segundo operando...: ')

        opc = input('\n 1 - Suma \n 2 - Resta \n 3 - Divide'
                                '\n 4 - Multiplica \n 5 - Modulo'
                                '\n\n Ingrese opcion....:')

        calc = calculos(oprUno, oprDos)

        if opc == '1':
                print(f'\n {oprUno} + {oprDos} = {calc.suma()}')
        elif opc == '2':
                print(f'\n {oprUno} - {oprDos} = {calc.resta()}')
        elif opc == '3':
                print(f'\n {oprUno} / {oprDos} = {calc.divide()}')
        elif opc == '4':
                print(f'\n {oprUno} * {oprDos} = {calc.multiplica()}')
        elif opc == '5':
                print(f'\n {oprUno} % {oprDos} = {calc.modulo()}')

        opc = input('\n 1 - Continua \n 2 - Finaliza'
                                '\n\n Ingrese opción...:')
        if opc != '1':
                break

Esta bien tu programa, por ahí para que sea más fácil leerlo, en lugar de usar while true, usa un while con una variable, en vez de romperlo con break, cambias el valor de la variable, por que a primera lectura uno ve un bucle que nunca termina. En este caso no importa, pero en programas grandes puede ser algo bueno.
El funcionamiento es el mismo solo cambia la lectura. (O será por que estoy acostumbrado a otros lenguajes).

Y como otro dato, en otros lenguajes, en este creo que no existe, algunos programadores como ese while mínimo se utiliza una vez, en lugar de while usan do while (te lo digo solo para cuando trabajes con otros lenguajes).
Pero creo que eso ya es preferencia de cada uno.

Saludos,
« Última modificación: Abril 25, 2018, 09:23:29 pm por Solid Water »

Not for the money, not for the fame. Not for the power, just no more games.

Desconectado YoSoyRDV

  • Me das tu IP?
  • *
  • Mensajes: 45
  • Sexo: Masculino
    • Ver Perfil
Re:Dudas con clases en python
« Respuesta #2 en: Abril 27, 2018, 07:01:04 pm »
Ok.  ya tome nota de lo que propones.
Muchas gracias.
Saludos

Desconectado seth

  • El mas real
  • G#
  • **
  • Mensajes: 7931
  • Sexo: Masculino
    • Ver Perfil
Re:Dudas con clases en python
« Respuesta #3 en: Mayo 01, 2018, 07:26:24 pm »
Los nombres de las clases suelen tener mas sentido en singular. En este caso el uso de oop está un poco forzado para explicar conceptos y no aplica tanto, pero está bueno que lo tengas presente


Ves links a xd-blog.com.ar que no andan? buscalos en You are not allowed to view links. Register or Login


question
Con Puntero de Clases Entre Clases

Iniciado por TetraBytes

2 Respuestas
2559 Vistas
Último mensaje Mayo 07, 2009, 02:49:35 pm
por TetraBytes
resuelto
dudas sobre __init__ en python

Iniciado por ghost_shell

6 Respuestas
5176 Vistas
Último mensaje Octubre 11, 2010, 03:50:05 pm
por ghost_shell
thumbup
Dudas con parámetros(mutables/lista) en función con python.

Iniciado por YoSoyRDV

4 Respuestas
1974 Vistas
Último mensaje Marzo 21, 2018, 04:52:13 am
por Solid Water
exclamation
[Código-Python]If file exists Python puro - JaAViEr

Iniciado por JaAViEr

5 Respuestas
2003 Vistas
Último mensaje Agosto 19, 2011, 08:01:26 pm
por .:WindHack:.®
xx
[Código-Python]Ejecuta otros lenguajes en Python ! - JaAViEr

Iniciado por JaAViEr

0 Respuestas
1331 Vistas
Último mensaje ſeptiembre 07, 2011, 05:15:34 pm
por JaAViEr
exclamation
Gray Hat Python - Python Programming For Hackers And Reverse Engineers

Iniciado por Hacker290

4 Respuestas
2999 Vistas
Último mensaje Diciembre 19, 2012, 09:56:02 am
por JaAViEr
exclamation
[Código-Python]Ejecuta otros lenguajes en Python V2 - JaAViEr

Iniciado por JaAViEr

0 Respuestas
1802 Vistas
Último mensaje ſeptiembre 07, 2011, 07:08:36 pm
por JaAViEr
xx
[python]VideoTraining Aprende A Programar En Python desde 0

Iniciado por juh

1 Respuestas
2370 Vistas
Último mensaje ſeptiembre 30, 2010, 07:54:52 pm
por Sthefano02
xx
[Tkinter Python]CUH-F1Sound 1.0.0(Reproductor de *.mp3 en Python)By Sokoleonardo

Iniciado por Sokoleonardo

2 Respuestas
2743 Vistas
Último mensaje Febrero 06, 2012, 08:42:30 am
por Sokoleonardo
xx
Clases en CSS

Iniciado por eriik

3 Respuestas
2224 Vistas
Último mensaje Marzo 11, 2008, 01:38:00 am
por eriik