Văn bản đơn giản. Xây dựng không hoạt động. Chuyện gì vậy?


-1

Nếu tôi nhấn build với đoạn script sau:

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)

Tôi nhận được lỗi sau:

  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]

@Seth: Cảm ơn bạn đã chỉnh sửa, nhưng đó không phải là nguyên nhân gây ra lỗi. Nút mã trong diễn đàn đó sẽ không hoạt động chính xác trên các văn bản được đánh dấu.
empedokles

Tôi đã không đề xuất những gì gây ra lỗi. Nút mã làm việc tốt cho tôi.
Seth

@Seth: Bạn đã nhân đôi phần mã của tôi. Sự trùng lặp không phải là vấn đề.
empedokles

Tôi đã không sao chép bất kỳ mã nào của bạn, tôi chỉ chọn nó và nhấn nút "mã" như bạn có thể thấy trong lịch sử sửa đổi . Xin lỗi nếu nó bằng cách nào đó gây ra nhầm lẫn. Có lẽ bạn đã vô tình dán nó hai lần?
Seth

Câu trả lời:


1

Mã của bạn đang thiếu một đóng )ở dòng cuối cùng, vì vậy nếu bạn cố chạy mã của mình thì bạn sẽ gặp lỗi từ đó.

Tuy nhiên, giả sử bạn khắc phục điều đó, việc chạy mã này với Python 3 sẽ hoàn thành thành công, nhưng sẽ không cung cấp bất kỳ đầu ra nào. Bạn đang định nghĩa một lớp và một vài phương thức, nhưng bạn không bao giờ khởi tạo lớp hoặc gọi bất kỳ phương thức nào. Tuy nhiên, ngay cả khi bạn đã làm, bạn sẽ gặp một lỗi như brennstunden_im_tagkhông được xác định ở bất cứ đâu, vì vậy bạn sẽ gặp lỗi khi chạy stromkosten_pro_jahr(). Bạn cũng cần phải có selftham số đầu tiên cho bất kỳ phương thức lớp nào. Cuối cùng, stromkosten_pro_jahr()nên returngiá trị, không phải print()nó. Dưới đây là một ví dụ về mã của bạn sẽ trông như thế nào:

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)

Lợi nhuận này 38.325- hy vọng đó là kết quả mà bạn đang tìm kiếm.


Không, đó là một cái gì đó xâm nhập bởi một người, người đã thay đổi bài đăng của tôi. Đó không phải là vấn đề. Tôi vẫn nhận được lỗi tương tự.
empedokles

@ user272441 Việc chỉnh sửa bài đăng của bạn không thay đổi bất kỳ mã nào. Thay vì sử dụng docstrings, hãy thử loại bỏ hoàn toàn bất kỳ bit nào của mã mà bạn không muốn chạy và thử lại.
MattDMo

@ user272441 Nếu mã trong câu hỏi không phải là mã bạn đang cố chạy, vui lòng chỉnh sửa câu hỏi và đặt mã chính xác. Khi bạn đã dán mã của mình, hãy tô sáng tất cả và nhấn Ctrl-Kđể định dạng chính xác mã đó thành một khối mã.
MattDMo

Được rồi, sửa chữa.
empedokles

1
@ user272441 - vâng, có. Nếu bạn chưa có, vui lòng cài đặt Gói kiểm soát , sau đó cài đặt SublimeREPL.
MattDMo

0

Bạn có thể nên cài đặt gói linter để xem có gì sai với mã của bạn, rõ ràng vấn đề nằm ở mã của bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.