Python - Mejorar código

 
Vista:

Mejorar código

Publicado por Leticia (10 intervenciones) el 26/10/2020 16:21:24
Hola!

Estoy con este script y me gustaría saber si hay alguna forma de mejorar el código. Ahora mismo funciona.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
class JuguetesConBateria:
    def __init__(self, e, c):
        self.Estado = e
        self.Consumo = c
        self.__tUso = None
        self.__tCarga = None
        print('{:' '^50}\n{:*^50}\nEstado inicial de la batería: {}%\nConsumo/h: {}%'.format('Situación inicial Tren'.upper(),
        '*', self.Estado, self.Consumo))
    def ConsumoNormal(self):
        self.Estado = self.Estado - self.Consumo
        return self.Estado
    def ConsumoDoble(self):
        self.Estado = self.Estado - (2 * (self.Consumo))
        return self.Estado
    def sett_CargaEstimado(self):
        self.__tCarga  = (100 - self.Estado) // self.Consumo
        return self.__tCarga
    def gett_CargaEstimado(self):
        return self.__tCarga
    def sett_Uso(self):
        self.__tUso = self.Estado // self.Consumo
    def gett_Uso(self):
        return self.__tUso
 
class Tren(JuguetesConBateria):
    def __init__(self, e, c, generacion):
        JuguetesConBateria.__init__(self, e, c)
        self.generacion = generacion
    def ConsumoNormal(self):
        if self.generacion == 1:
            self.Estado = self.Estado - (self.Consumo)
        else:
            JuguetesConBateria.ConsumoNormal(self)
        return self.Estado
    def ConsumoDoble(self):
        if self.generacion == 1:
            self.Estado = self.Estado - (2 * (self.Consumo))
        else:
            JuguetesConBateria.ConsumoDoble(self)
        return self.Estado
 
 
def secuencia1(obj):
    print('Secuencia de uso 1. Uso de 5 horas (normal)\n{:-^65}'.format('-'))
    for i in range(1, 6):
        if obj.ConsumoNormal() < 0:
            obj.Estado = 0
            print ('El juguete no tiene batería. Debes cargar')
            break
        else:
            print ('Tiempo de uso: ',str(i), ' horas\nEstado de la batería: ',str(obj.Estado),'%')
 
def secuencia2(obj):
    print('\nSecuencia 2. Uso de 3 horas \n{:-^65}'.format('-'))
    for i in range(1, 4):
        if obj.ConsumoDoble() < 0:
            obj.Estado = 0
            print('El juguete no tiene batería. Debes cargar')
            break
        else:
            print('Tiempo de uso:',str(i),'horas\nEstado de la batería:',str(obj.Estado),'%')
 
def secuencia3(obj):
    contador = 0
    print('\nSecuencia 3. Queda 1 hora de batería. Luego cargar\n{:-^65}'.format('-'),)
    obj.sett_Uso()
    tiempoUso = obj.gett_Uso()
    print (tiempoUso)
    if obj.Estado > 0:
        print('Quedan', tiempoUso, 'de juego\nJugando...')
        while tiempoUso > 1:
            contador +=1
            obj.ConsumoNormal()
            print('Tiempo de uso:',contador,'horas\nEstado de la batería:',obj.Estado,'%')
            obj.sett_Uso()
            tiempoUso = obj.gett_Uso()
 
 
miTren = Tren(100,50,2)
secuencia1(miTren)
secuencia2(miTren)
secuencia3(miTren)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder