
Si presiono construir con el siguiente script:
if __name__ == "__main__":
class Strom(object):
def __init__(self):
self.preis_kilowattstunde = 0.21
def stromkosten_pro_jahr(watt):
'''
(integer) -> float
leitet aus einer Zahl in Watt eines Objektes die Stromkosten pro Jahr ab
'''
print(watt * brennstunden_im_tag * 365 * self.preis_kilowattstunde / 1000)
def stromkosten_differenz(watt_objekt1, watt_objekt2):
'''
(integer, integer) -> float
Nimmt die Stromkosten in Watt zweier Objekte und gibt die Stromkostendifferenz in CHF aus.
'''
if watt_objekt2 > watt_objekt1:
print(stromkosten_pro_jahr(watt_objekt2) - stromkosten_pro_jahr(watt_objekt1))
else:
print(stromkosten_pro_jahr(watt_objekt1) - stromkosten_pro_jahr(watt_objekt2)
Recibo el siguiente error:
File "/home/empedokles/Dropbox/Yannick/Python/stromkosten.py", line 31
^
SyntaxError: invalid syntax
[Finished in 0.2s with exit code 1]
[shell_cmd: python -u "/home/empedokles/Dropbox/Yannick/Python/stromkosten.py"]
[dir: /home/empedokles/Dropbox/Yannick/Python]
[path: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games]
Respuesta1
A su código le falta un cierre )
en la última línea, por lo que si intenta ejecutar su código tal como está, obtendrá un error.
Sin embargo, suponiendo que solucione eso, la ejecución de este código con Python 3 se completará correctamente, pero no dará ningún resultado. Estás definiendo una clase y un par de métodos, pero nunca creas una instancia de la clase ni llamas a ninguno de los métodos. Sin embargo, incluso si lo hiciera, obtendría un error que indica que brennstunden_im_tag
no está definido en ninguna parte, por lo que obtendrá un error al intentar ejecutar stromkosten_pro_jahr()
. También debe tenerlo self
como primer parámetro para cualquier método de clase. Finalmente, stromkosten_pro_jahr()
debería ser return
el valor, no print()
el. A continuación se muestra un ejemplo de cómo debería verse su código:
class Strom(object):
def __init__(self, brennstunden_im_tag):
self.preis_kilowattstunde = 0.21
self.brennstunden_im_tag = brennstunden_im_tag
def stromkosten_pro_jahr(self, watt):
'''
(integer) -> float
leitet aus einer Zahl in Watt eines Objektes die Stromkosten pro Jahr ab
'''
return watt * self.brennstunden_im_tag * 365 * self.preis_kilowattstunde / 1000
def stromkosten_differenz(self, watt_objekt1, watt_objekt2):
'''
(integer, integer) -> float
Nimmt die Stromkosten in Watt zweier Objekte und gibt die Stromkostendifferenz in CHF aus.
'''
if watt_objekt2 > watt_objekt1:
print(self.stromkosten_pro_jahr(watt_objekt2) - self.stromkosten_pro_jahr(watt_objekt1))
else:
print(self.stromkosten_pro_jahr(watt_objekt1) - self.stromkosten_pro_jahr(watt_objekt2))
if __name__ == "__main__":
my_strom = Strom(10)
my_strom.stromkosten_differenz(100, 50)
Esto vuelve 38.325
; con suerte, ese es el resultado que estás buscando.
Respuesta2
Probablemente deberías instalar unpelusapaquete para ver qué está mal con su código, obviamente el problema está en su código.