간단한 텍스트. 빌드가 작동하지 않습니다. 뭐가 문제 야?

간단한 텍스트. 빌드가 작동하지 않습니다. 뭐가 문제 야?

다음 스크립트를 사용하여 빌드를 누르면:

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)

다음과 같은 오류가 발생합니다.

  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]

답변1

코드의 마지막 줄에 닫는 부분이 없습니다 ). 따라서 코드를 있는 그대로 실행하려고 하면 오류가 발생합니다.

그러나 이 문제를 해결한다고 가정하면 Python 3에서 이 코드를 실행하면 성공적으로 완료되지만 출력은 제공되지 않습니다. 클래스와 몇 가지 메서드를 정의하지만 클래스를 인스턴스화하거나 메서드를 호출하지 않습니다. 하지만 그렇게 했더라도 brennstunden_im_tag어디에도 정의되지 않은 오류가 발생하므로 를 실행하려고 하면 오류가 발생합니다 stromkosten_pro_jahr(). 또한 self모든 클래스 메서드에 대한 첫 번째 매개 변수가 있어야 합니다 . 마지막으로 가치 stromkosten_pro_jahr()가 있어야 합니다 . 다음은 코드의 모양에 대한 예입니다.returnprint()

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)

이것이 반환됩니다 38.325. 바라건대 이것이 당신이 찾고 있는 결과입니다.

답변2

아마도 다음을 설치해야 할 것입니다.린터코드에 어떤 문제가 있는지 확인하려면 분명히 문제는 코드에 있습니다.

관련 정보