Sind meine Fehler Normal?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
xpilz
User
Beiträge: 76
Registriert: Sonntag 11. April 2010, 12:46
Wohnort: Deutschland
Kontaktdaten:

Hallo ich bin seit circa einem bis zwei Monat/en mit Python dabei. Richtig intensiv lernen tuh ich erst über die Sommerferien. Habe auch schon einige Skripts geschrieben. Nur merke ich wenn mir dann z.b. ein anderer Lösungsweg für das Problem vorgeschlagen wird, das dieser dann wesentlich einfacher geschrieben ist. Bei mir würde es circa so aussehen:

Code: Alles auswählen

def summe(a,b):
    c = a + b
    return c

a = 1
b = 2
summe(a,b)
Im Gegenteil dazu dann ein Vorschlag:

Code: Alles auswählen

def summe(a,b):
    return a + b

a, b = 1, 2
summe(a,b)
So in etwa sieht es dann auch bei größeren Programmen aus. Versteht ihr was ich meine? Meine Frage wäre ob es bei einigen von euch auch der Fall war.. :|

Grüße xpilz
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Du meinst, ob es normal ist, etwas nicht auf Anhieb perfekt zu beherrschen?
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

Blödes Beispiel :twisted:

Code: Alles auswählen

1 + 2
Es sind doch keine Fehler, es ist lediglich ausführlicher (wobei es eig. nur unnötige Schreibarbeit ist).
the more they change the more they stay the same
lunar

@xpils: Keine Sorge, das geht allen so ... naja, fast allen. BlackJack nicht. BlackJack ist per definitionem immer korrekt. ;)
Benutzeravatar
xpilz
User
Beiträge: 76
Registriert: Sonntag 11. April 2010, 12:46
Wohnort: Deutschland
Kontaktdaten:

@cofi:
Gut geschrieben. In gewisserweise schon, aber deine Frage hat mir geholfen. So hab ich das noch nicht gesehen.

@Dav1d
Naja :D. Ein besseres Beispiel ist mir dafür jetzt nicht eingefallen. Ja das stimmt.

@lunar
Danke, das beruhigt mich.

Grüße xpilz
BlackJack

@lunar: Wenn dann aber nur hier -- drüben bei UU.de habe ich bei dem C++-Poker-Dingens gerade ziemlich daneben gelegen. :-(
lunar

BlackJack hat geschrieben:@lunar: […] drüben bei UU.de habe ich bei dem C++-Poker-Dingens gerade ziemlich daneben gelegen. :-(
Wenn Du meinst ... ich habe mir den Quelltext des OP nicht angesehen, das war mir viel zu konfus. :) Macht aber auch nichts, dort drüben hast Du ja auch den falschen Namen, da kommt das BlackJack nicht zum Tragen ;)
problembär

xpilz hat geschrieben:Bei mir würde es circa so aussehen:

Code: Alles auswählen

def summe(a,b):
    c = a + b
    return c

a = 1
b = 2
summe(a,b)
Im Gegenteil dazu dann ein Vorschlag:

Code: Alles auswählen

def summe(a,b):
    return a + b

a, b = 1, 2
summe(a,b)
So in etwa sieht es dann auch bei größeren Programmen aus. Versteht ihr was ich meine?
Ja, ich verstehe sehr gut, was Du meinst. Ich halte Deinen (ersten) Code-Vorschlag überhaupt nicht für "falsch": Es ist korrektes Python, und es ist für Menschen leicht zu verstehen. IMHO soll Python so sein, und sich damit von Perl absetzen.
In Perl kann man entweder ungefähr so wie in Deinem ersten Beispiel schreiben, oder aber auch extrem kurz und kryptisch. Dann versteht aber keiner mehr was, so daß extra Bücher und Module geschrieben werden müssen, die einem dieses "kurz und kryptisch" wieder abgewöhnen, weil damit große Projekte einfach nicht zu realisieren und schon gar nicht zu warten sind.
Ich schreibe daher in Python in der Regel so, wie Du in Deinem ersten Beispiel, und zwar bewußt und absichtlich, und kann das auch sonst empfehlen.

Das hat noch einen weiteren positiven Effekt: Denn diese "Verkürzungen" sind häufig Sprachkonstrukte, die nur in neueren Python-Versionen verfügbar sind. Schreibt man also so wie in Deinem ersten Beispiel, hat man die Chance, daß auch noch Leute mit älteren Python-Versionen den Code ausführen können.

Also, laß' Dir nicht einreden, daß es eine "andere", "bessere" Python-Syntax geben könnte, für die Du nur noch nicht schlau und wichtig genug wärst. So etwas gibt es - von echter Code-Optimierung zur Performance-Verbesserung mal abgesehen - nämlich nicht.

Viele Grüße
Benutzeravatar
xpilz
User
Beiträge: 76
Registriert: Sonntag 11. April 2010, 12:46
Wohnort: Deutschland
Kontaktdaten:

Vielen Dank. Ich denke auch einfach nur Herumsitzen und daran Zweifeln bringt auch nicht viel. Ich werde mich drann setzen, lernen und Skripte schreiben. Wenn ich Probleme habe, die ich alleine nicht lösen kann, greife ich mal wieder auf dieses Forum zurück :D.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Mal abgesehen davon, dass die Beispiele viel zu klein und zu wenig komplex sind, würde ich in jedem Fall das zweite Beispiel bevorzugen. Die zusätliche Zeile in der Funktion oder mehrere Zeilen für zusammengehörige Zuweisungen sind in diesem Fall Noise und erschweren das Lesen. Im Normalfall ist es sinnvoll, den Code so kurz zu halten wie möglich, aber so, dass man jede Zeile noch immer leicht versteht. Hier beißt sich die Katze natürlich ein wenig in den Schwanz, aber was "gut nachvollziehbar" ist findet man nur durch Erfahrung heraus.
Das Leben ist wie ein Tennisball.
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

xpilz hat geschrieben:Hallo ich bin seit circa einem bis zwei Monat/en mit Python dabei. Richtig intensiv lernen tuh ich erst über die Sommerferien. Habe auch schon einige Skripts geschrieben. Nur merke ich wenn mir dann z.b. ein anderer Lösungsweg für das Problem vorgeschlagen wird, das dieser dann wesentlich einfacher geschrieben ist.
Oh mein Gott, das nennt man wohl Lerneffekt. :o

Halt dich einfach weiter ran und dann passt das. Nach 2 Monaten kann man noch keine Wunder erwarten. Schlimmer sind IMHO die Leute von der Sorte: "Das klappt aber auch so. Das Skript ist ja nur für mich. Ich werd das nicht ändern."
problembär hat geschrieben:Das hat noch einen weiteren positiven Effekt: Denn diese "Verkürzungen" sind häufig Sprachkonstrukte, die nur in neueren Python-Versionen verfügbar sind. Schreibt man also so wie in Deinem ersten Beispiel, hat man die Chance, daß auch noch Leute mit älteren Python-Versionen den Code ausführen können.
Ja, genau. Mindestens bis 2015 Python 2.3 konform bleiben. :twisted:
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Fuer sowas finde ich es sehr nuetzlich, hier im Forum mitzulesen. Man kann naemlich auch von den Verbesserungsvorschlaegen an anderer Leute Code sehr viel lernen.
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Antworten