Ich bin Laie und habe grundlegende Fragen.

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
Dexter1997
User
Beiträge: 92
Registriert: Sonntag 2. Dezember 2012, 21:13

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!
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.
Dexter1997
User
Beiträge: 92
Registriert: Sonntag 2. Dezember 2012, 21:13

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. :)
Benutzeravatar
jbs
User
Beiträge: 953
Registriert: Mittwoch 24. Juni 2009, 13:13
Wohnort: Postdam

Schau dir lieber ein Projekt konkret an, oder lies in diesem Forum aktiv mit.
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

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.
Dexter1997
User
Beiträge: 92
Registriert: Sonntag 2. Dezember 2012, 21:13

Die Seite sieht gut aus. Mit dem Pygame Modul werde ich mich laut Buch eh irgendwann beschäftigen müssen. Dankeschön.
Antworten