Seite 1 von 1

Ich bin Laie und habe grundlegende Fragen.

Verfasst: Sonntag 2. Dezember 2012, 21:23
von Dexter1997
Ich habe mich bisher nur kurzweilig mit Programmieren beschäftigt, und das auch schon lange nicht mehr. Jetzt habe ich programmieren wieder neu entdeckt und ich bin fast wieder da wo ich vorher mal war: Kurz davor "funktionen" zu erlernen. Ich programmiere mit Python 2.6.1 und möchte vorerst nicht umsteigen. (erlerne Programmieren mit darauf konzipiertem Buch)
Hier hab ich einen kleinen Code erstellt, der mir etwas mistig vorkommt:

Code: Alles auswählen

import random
# -*- coding: cp1252 -*-

print "In diesem Programm musst du einfach nur Aufgaben lösen."

start = int (raw_input ("Möchtest du ein neues Spiel beginnen? dann tippe 1!"))
while start == 1:
    zahl1 = random.randint (10, 30)
    zahl2 = random.randint (10, 30)
    ergebnis = zahl1 + zahl2
    rechnung = raw_input (str (zahl1) + "+" + str (zahl2) + "= ")
    rechnung2 = int (rechnung)
    if rechnung2 == ergebnis:
        print "Richtig"
    else:
        print "Falsch"
        
    
Gibt es möglichkeiten, gewisse Stellen im Code zu komprimieren?

Und dann meine letzte Hauptfrage: Wo kann ich Programmcodes von kleinen spielen oder ähnlichen Programmen die mit python programmiert wurden, finden? (also nicht so komplizierte mit Netzwerkprogrammierung und bla, am besten codes von einfachen spielen) wenn ihr wisst wo es sowas gibt lasst es mich wissen oder schickt mir welche, danke für eure aufmerksamkeit!

Re: Ich bin Laie und habe grundlegende Fragen.

Verfasst: Sonntag 2. Dezember 2012, 22:53
von BlackJack
@Dexter1997: Der Style Guide for Python Code legt nahe die Leerzeichen zwischen Funktionsnamen und öffnender Klammer der Argumente weg zu lassen.

Der Coding-Kommentar sollte möglichst weit oben stehen, in der Regel in der ersten oder zweiten Zeile der Datei.

Die Namen `rechnung` und `rechnung2` sind nicht besonders gut, denn der Wert, der daran gebunden wird, ist keine Rechnung sondern ein Ergebnis. So würde ich das auch nennen. Vielleicht `benutzer_ergebnis` und das andere `erwartetes_ergebnis`.

`str()` und ``+`` zum zusammensetzen von Zeichenketten und Werten ist für Python untypisch, das sieht eher nach BASIC aus. In Python gibt es Zeichenkettenformatierung mit dem ``%``-Operator oder der `format()`-Methode auf Zeichenketten.

Die ``while``-Schleife ist IMHO etwas unpassend, weil es eine Endlosschleife ist. Die drückt man eher mit ``while True:`` aus — dann sieht man das deutlicher. Die Bedingung bei Dir ist ja eher eine Entscheidung ob der Code in der Schleife *überhaupt* ausgeführt wird, was eher für ein ``if`` spricht.

Zum Komprimieren: Da sehe ich nicht viel Potential. Ich würde das Zwischenergebnis der Benutzereingabe nicht extra an einen Namen binden. Das aber nicht aus Platzgründen, sondern weil ich keinen Mehrwert darin sehe.

Re: Ich bin Laie und habe grundlegende Fragen.

Verfasst: Montag 3. Dezember 2012, 19:52
von Dexter1997
Vielen Dank für die wertvollen Tipps und diese umfangreiche Antwort!
Mich würde allerdings noch interessieren, ob es eine Art "Sammlung" von allen möglichen Python Codes im Internet gibt, die man lesen kann um seine Fähigkeiten zu erweitern. :)

Re: Ich bin Laie und habe grundlegende Fragen.

Verfasst: Montag 3. Dezember 2012, 19:53
von jbs
Schau dir lieber ein Projekt konkret an, oder lies in diesem Forum aktiv mit.

Re: Ich bin Laie und habe grundlegende Fragen.

Verfasst: Montag 3. Dezember 2012, 19:55
von cofi
Nun wenn dich Spiele interessieren, bei Pygame gibt es jede Menge: http://pygame.org/

Ob die jetzt deiner Definition von "klein" entsprechen kann ich dir nicht sagen und sehr wahrscheinlich sind sie auch sehr mit Pygame verwoben.

Re: Ich bin Laie und habe grundlegende Fragen.

Verfasst: Montag 3. Dezember 2012, 21:08
von Dexter1997
Die Seite sieht gut aus. Mit dem Pygame Modul werde ich mich laut Buch eh irgendwann beschäftigen müssen. Dankeschön.