Texto simples. Build não funciona. O que há de errado?

-1

Se eu pressionar compilar com o seguinte 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)

Eu recebo o seguinte erro:

  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]
    
por empedokles 07.05.2014 / 23:49

2 respostas

1

Seu código está faltando um ) de fechamento na última linha, então se você tentar executar seu código como está, você receberá um erro disso.

No entanto, supondo que você conserte isso, a execução deste código com o Python 3 será concluída com êxito, mas não fornecerá nenhuma saída. Você está definindo uma classe e alguns métodos, mas nunca instancie a classe ou chame qualquer um dos métodos. Mesmo se você tivesse, no entanto, você receberia um erro, pois brennstunden_im_tag não está definido em lugar algum, portanto, você receberá um erro ao tentar executar stromkosten_pro_jahr() . Você também precisa ter self como o primeiro parâmetro para qualquer método de classe. Finalmente, stromkosten_pro_jahr() deve return do valor, não print() it. Aqui está um exemplo de como seu código deve ficar:

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)

Isso retorna 38.325 - esperamos que seja o resultado que você está procurando.

    
por MattDMo 08.05.2014 / 14:49
0

Você provavelmente deve instalar um pacote linter para ver o que há de errado com seu código, obviamente, o problema está no seu código.

    
por idleberg 08.05.2014 / 00:36