Seite 1 von 1

Python-Code wird nicht ausgeführt

Verfasst: Freitag 13. März 2020, 03:00
von invisible
Seid gegrüßt,

wage mich wieder an Python ran und dieses mal mit der IDE "PyCharm". Habe früher ein bischen mit Python gearbeitet, waren aber immer kleine Skripte die ich geschrieben habe und eher im Terminal. Würde mich dennoch als Anfänger betrachten, nur so damit ihr vorbereitet seid. Aufjedenfall möchte ich mit Python objektorientiert programmieren. Ich werde in der nächsten Zeit höchstwahrscheinlich die eine oder andere Frage hier stellen. Würde sagen ich poste erstmal dann einfach mein Anliegen. Also, ich hab jetzt ein kleines OOP Testskript in Python geschrieben, welches ich testen (ausführen) wollte. Nun erhalte ich von PyCharm folgende Fehlermeldung (siehe Screenshot). Wäre dankbar für Rückmeldung.

Code: Alles auswählen

C:\Users\Lenovo\PycharmProjects\Erster_Versuch\venv\Scripts\python.exe "C:\Program Files\JetBrains\PyCharm 2019.3.3\plugins\python\helpers\pydev\pydevconsole.py" --mode=client --port=55961

import sys; print('Python %s on %s' % (sys.version, sys.platform))
sys.path.extend(['C:\\Users\\Lenovo\\PycharmProjects\\Erster_Versuch', 'C:/Users/Lenovo/PycharmProjects/Erster_Versuch'])

PyDev console: starting.
Python 3.8.1 (tags/v3.8.1:1b293b6, Dec 18 2019, 23:11:46) [MSC v.1916 64 bit (AMD64)] on win32
runfile('C:/Users/Lenovo/PycharmProjects/Erster_Versuch/testfile1.py', wdir='C:/Users/Lenovo/PycharmProjects/Erster_Versuch')

Der Python Code sieht wie folgt aus:

Code: Alles auswählen

class Rechteck:
    def __init__(self,laenge,breite):

        self.myLaenge = laenge
        self.myBreite = breite

        print('rechteck erstellt')

        def printRechteck(self):
            print('Rechtecklänge:'+str(self.myLaenge)+'Rechteckbreite'+str(self.myBreite))

            rechteck1 = Rechteck(20,5)

            rechteck1.printRechteck()

Re: Python-Code wird nicht ausgeführt

Verfasst: Freitag 13. März 2020, 08:41
von sparrow
Da ist keine Fehlermeldung.
Das sind die Ausgaben, mit denen dir PyCharm zeigt, dass das Script gestartet wird.

Re: Python-Code wird nicht ausgeführt

Verfasst: Freitag 13. März 2020, 08:52
von Jankie
Die Einrückung bei dir war fehlerhaft.

Anmerkungen:

Variablen werden in Python klein_mit_unterstrich geschreiben. Außnahmen sind Konstanten (KOMPLETT_GROSS) und Klassen (MixedCase). Strings setzt man nicht mit '+' zusammen, sondern benutzt Stringformatierung. Das "my" Prefix ist bei Variablennamen unnötig.

Code: Alles auswählen

class Rechteck:
    def __init__(self, laenge, breite):
        self.laenge= laenge
        self.breite = breite

        print('rechteck erstellt')

    def print_rechteck(self):
        print(f"Rechtecklänge: {self.laenge} Rechteckbreite: {self.breite}")

rechteck1 = Rechteck(20,5)

rechteck1.print_rechteck()

Re: Python-Code wird nicht ausgeführt

Verfasst: Freitag 13. März 2020, 08:56
von Sirius3
Wenn das der gesamte Code ist, machst du ja auch nichts. Die my-Präfixe löschst Du am besten gleich wieder. Die Einrückung von printRechteck ist falsch. Und danach noch fälscher für die zwei letzten Zeilen. Strings setzt man nicht mit + zusammen, sondern benutzt Stringformatierung.

Re: Python-Code wird nicht ausgeführt

Verfasst: Freitag 13. März 2020, 09:50
von __blackjack__
@invisible: Die 1 bei `rechteck1` kann dann auch gleich wieder weg weil man keine Namen durchnummeriert.

Re: Python-Code wird nicht ausgeführt

Verfasst: Freitag 13. März 2020, 13:33
von invisible
Vielen Dank euch für die konstruktiven Rückmeldungen!

Also ich bin jetzt mal nach euren Methoden vorgegangen und es funktioniert. Was das rechteck1 angeht, so war es halt gedacht dass ich mit der Zeit mehrere Objekte der Klasse Rechteck erstelle, also rechteck1, rechteck2 usw. Das f vor den ersten Anführungsstrichen in der printMethode, ist so wie ich das jetzt verstanden habe, notwendig, da es ohne nicht funktioniert und steht wahrscheinlich für "format". Naja aufjedenfall funktioniert es und da es dazu dienen soll den Programmierstil einheitlich zu halten, bemühe ich mich, die von euch erhaltenen Ratschläge (was die Einrückung und Formatierung angeht) umzusetzen. Vielen Dank an dieser Stelle nochmal! :D

Re: Python-Code wird nicht ausgeführt

Verfasst: Freitag 13. März 2020, 13:35
von sparrow
Ja, dass die Nummerierung der Rechtecke dafür gedacht war, hat __blackjack__ sich schon gedacht. Deshalb hat er auch gesagt, dass das nicht richtig ist.
Wenn man die Situation hat, dass man Variablen nummerieren möchte, dann möchte man eigentlich eine Liste verwenden.

Re: Python-Code wird nicht ausgeführt

Verfasst: Freitag 13. März 2020, 13:37
von Jankie
Wenn du mehrere Rechtecke erstellen willst, dann speicher die in lieber in einer Liste am anstatt zu durchnummerieren.

Re: Python-Code wird nicht ausgeführt

Verfasst: Freitag 13. März 2020, 18:19
von invisible
achso ja stimmt ne Array List erstellen, alles klar denke langsam aber sicher werden die alten Prog-Kenntnisse wieder kommen.