Einsteigerin in python

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.
mettalqueen
User
Beiträge: 44
Registriert: Dienstag 7. Mai 2013, 23:02
Wohnort: Greifswald

Guten Abend Leute.
Seit längerem spiele ich mit dem Gedanken Python zu lernen, da ich im mom Html lerne und das gelernte dann an meiner Webseite anwende. Ich habe gelesen man kann viele Sachen mit Python machen, die für meine Hompage irgendwann unerlässlich sind, wie zum Beispiel eine Hompageinterne Suchmaschiene oder sowas.
Ich habe mir für die Grundkenntnisse das Buch vo Thomas Theis Glileo Computing-Verlag Einstieg in Python gekauft. Nun lernt man ja nicht nur durch lesen sondern eher durch Übung. Im Buch sind aber kaum Übungsaufgaben drinne. Bei Amazon habe ich kein Buch mit Übungsaufgaben gefunden und im Netz wurde ich auch nicht fündig. (Nur eine Seite, aber die Aufgaben sind mir zu ja hm wie sag ich es Mathematisch oder so. Will es ja nicht gleich Studieren)

Kann mir vielleicht jemand weiterhelfen in dem Punkt: Übungen, praktische Übungen?
Lg Anne
Benutzeravatar
Manchotix
User
Beiträge: 54
Registriert: Samstag 14. Januar 2012, 19:54

Da du mit HTML am arbeiten bist kannst du dir ja vor nehmen deine Seite mit Django oder der gleichen zu machen dabei lernt man richtig viel.

Was du auch machen kannst ist dir ein kleines Script vor zu nehemen was dir Tägliche aufgaben erspart z.B. Bilder sortieren oder sowas.

Was auch noch gut ist ein kleines Spiel zu machen zum Beispiel mit pygame "Fang den Geist/Ball" .

Aber auch unter dem Python-forum sind schon solche Artikel zufinden was man so für denn Anfang machen kann oder unter der Seite Python the Hardway sind gute ideen.

http://learnpythonthehardway.org/book/next.html
- Über Fehler sollte man sich freuen als über das richtige Ergebnis denn wir Menschen können nur aus den Fehlern lernen-
mettalqueen
User
Beiträge: 44
Registriert: Dienstag 7. Mai 2013, 23:02
Wohnort: Greifswald

Vielen Dank erst einmal für die schnelle Antwort. Auf den Seiten war ich natürlich schon. Bin aber kein Freund von Fremdsprachen. Hatte während meiner Schulzeit auch Nachhilfe in English und kam troztdem nur auf eine 4. Daher bringen mir die Englishsprachigen Seiten nicht sonderlich viel.
Lg Anne
Benutzeravatar
Manchotix
User
Beiträge: 54
Registriert: Samstag 14. Januar 2012, 19:54

Hatte während meiner Schulzeit auch Nachhilfe in English und kam troztdem nur auf eine 4. Daher bringen mir die Englishsprachigen Seiten nicht sonderlich viel.
Naja die Seite sollte auch nur eine Kurze auflistung von Ideen sein.
Aber das mit dem Englisch wird schon von alleine kommen wenn du dich viel mit den Programmieren beschäftigst da viele Dokumentationen in Englisch sind kommst du da nicht drum herum.

Aber ich kann dir zum Anfang noch ein Link geben wo auch ein Paar module behandelt werden und man damit schon viel experimentieren kann.

http://de.wikibooks.org/wiki/Python_unter_Linux
- Über Fehler sollte man sich freuen als über das richtige Ergebnis denn wir Menschen können nur aus den Fehlern lernen-
BlackJack

@mettalqueen: Die Frage wird hier öfter gestellt und es kommen immer die gleichen, oder zumindest ähnliche Antworten. Du könntest also mal die Suchfunktion versuchen.

Project Euler kommt wahrscheinlich nicht in Frage, wenn es nicht zu mathematisch werden soll. :-) Vielleicht Aufgaben beim Sphere Online Judge oder welche von HP Codewars. Letztere sind vom Schwierigkeitsgrad sehr weit gestreut, soll heissen es gibt von jedem Jahr sehr einfache, bis zu Schwierigeren oder zumindest etwas Aufwändigeren.

Wenn Du Python für eine Website einsetzen möchtest, solltest Du Dir allerdings klar machen, dass das in der Regel nicht bei jedem Hoster problemlos möglich ist. Das muss vom Hoster schon unterstützt werden, und zwar jenseits von einfachen CGI-Skripten.

Viele webbezogene Module und Packages sind übrigens noch nicht auf Python 3 portiert und Hoster sind dementsprechend auch noch nicht bei Python 3 angekommen. Da müsste man dann schon einen eigenen Server betreiben.

Ansonsten sind die besten Übungsprojekte oft kleine Projekte die einen persönlich interessieren. Danach kannst Du dann aber nicht andere fragen, denn was Dich interessierst, weisst Du am besten. :-)

Mittelgrosse (bis grosse) Projekte sind auch Brett- oder Kartenspiele umzusetzen. Falls Du Da ein Lieblingsspiel hast, was sich als Computerspiel umsetzen lässt…

Edit: Wenn Du mit Englisch nicht klar kommst, dann vergiss das mit dem Programmieren. Das mag jetzt erst einmal hart klingen, aber so gut wie alle Dokumentation zu Bibliotheken ist vorzugsweise auf Englisch verfügbar. Für einzelne Themen mag es auch etwas auf Deutsch geben, aber API-Dokumentation gibt es nur *sehr* selten auch auf Deutsch, und wenn dann fast nie *aktuell*. Und ohne API-Dokumentation lesen zu können, kann man nicht sinnvoll programmieren. Sieh es als Chance Englisch zu lernen. Zumindest das technische Englisch, welches in diesem Fachgebiet verwendet wird. Das ist einfacher als Romane oder ähnliches, weil es bei API-Dokumentation ja nicht darauf ankommt möglichst „blumig” und „schön” zu schreiben, sondern möglichst klar und deutlich Informationen zu vermitteln.
webspider
User
Beiträge: 485
Registriert: Sonntag 19. Juni 2011, 13:41

Ich habe letztens dieses Spiel gefunden und es verwendet neben dem ganzen Javascript und HTML einen Python-Server zum Speichern des Spielerfortschritts. Etwas der Sorte könnte ich mir ganz gut als Projekt für Bottle oder Flask vorstellen.
mettalqueen
User
Beiträge: 44
Registriert: Dienstag 7. Mai 2013, 23:02
Wohnort: Greifswald

Ich habe geschaut ich kann Python benutzen, bzw das nächste Paket nehmen und dann nutzen, weiß nicht mehr so genau. Ich denke auch dass wenn ich immer mal mit dem english in Verbindung komme, dass ich es dann irgendwie lerne. In der Nacht kam mir die Idee einfach ein Lernprogramm zu machen mit Englishen Vokabeln, die mir hier vielleicht über den Weg laufen. Und da meine Eltern letzte Woche in Schottland waren Urlaub machen und vielleicht irgendwann noch einmal hinfahren wollen, vorher aber English lernen ist es vielleicht eine gute Idee, da sie dann das Spiel immer gut Testen können. Ich glaube der letzte Satz ist ein bisschen sehr verschachtelt. Ansonsten hatte ich auch an ein Memory-spiel gedacht. Die Benutzerobeflächen werden in meinem Buch zwar erst im letzten Kapitel behandelt, aber vielleicht kann man das auch vorziehen.
Vielen Dank ihr habt mir sehr geholfen.
Ich werde mich bestimmt öfters nochmal melden

(Ich durchsuche das Forum bereits seit 3 Tagen, hatte aber nichts passendes gefunden, ausser das mit dem Tamagotchi, fand es für den Anfang dann aber zu schwer)
BlackJack

@mettalqueen: Benutzeroberflächen kommen aus gutem Grund zum Schluss, weil die auf allem vorhergehendem aufbauen und ereignisorientierte Programmierung als neue zusätzliche Technik mitbringen, die davor meistens noch nicht wichtig war. Objektorientierte Programmierung (OOP) sollte man zu dem Zeitpunkt dann schon drauf haben, sonst muss man zwei neue Themen auf einmal lernen.

Der übliche Aufbau ist:
  • Ausdrücke
  • Kontrollstrukturen (Schleifen, bedingte Verzweigungen)
  • Funktionen
  • Module (eventuell Packages)
  • Klassen (OOP)
  • GUI (ereignisorientierte Programmierung)
Irgendwo zwischen Kontrollstrukturen und Klassen (jeweils inklusive) sollte noch Ausnahmebehandlung vorkommen. Module (und Packages) könnte man auch nach Klassen behandeln. Mit der Ausnahme von Modulen baut jeder Punkt zwingend auf dem Wissen des Vorhergehenden auf.
jerch
User
Beiträge: 1669
Registriert: Mittwoch 4. März 2009, 14:19

@BlackJack:
Bis wann ist Dein Tutorial/Buch fertig? Die Grundstruktur hast Du ja schon. BlackJack for Tutor! :lol:
nezzcarth
User
Beiträge: 1753
Registriert: Samstag 16. April 2011, 12:47

BlackJack hat geschrieben: Wenn Du Python für eine Website einsetzen möchtest, solltest Du Dir allerdings klar machen, dass das in der Regel nicht bei jedem Hoster problemlos möglich ist. Das muss vom Hoster schon unterstützt werden, und zwar jenseits von einfachen CGI-Skripten.
Was allerdings ginge, wäre ein Generator, der statisches HTML ausspuckt; zumindest im Bereich Blog-Software scheint mir das halbwegs "beliebt" zu sein. Ist natürlich was anderes, als "richtige" Webentwicklung, aber vielleicht trotzdem ein nettes Übungsprojekt.
BlackJack

@nezzcarth: Die website-interne Suchfunktion, die mettalqueen als Beispiel angegeben hat, müsste man dann in JavaScript umsetzen. Als Beispiel könnte da vielleicht die Suche von Sphinx dienen.
mettalqueen
User
Beiträge: 44
Registriert: Dienstag 7. Mai 2013, 23:02
Wohnort: Greifswald

Das ist ja alles komplizierter als gedacht
BlackJack

@jerch: Das ist ja die Grundstruktur von so ziemlich jedem Tutorial oder Buch. Ich denke nicht, das ich was besseres schreiben kann, als bereits vorhandene gute Tutorials oder Bücher.

@mettalqueen: Das Essay Teach Yourself Programming in Ten Years ist in dem Zusammenhang lesenswert. (Da gibt es auch einen Link auf eine Deutsche Übersetzung.)
mettalqueen
User
Beiträge: 44
Registriert: Dienstag 7. Mai 2013, 23:02
Wohnort: Greifswald

Inzwischen habe ich gelernt Verzweigungen, Schlifen, und Funktionen und Module gelernt und mein Wissen an einem Projekt versucht anzuwenden.
Ich habe mir gedacht ich schreibe so etwas wie ein Vokabeltrainer

Code: Alles auswählen

#!/usr/bin/python3
#Woerterbuch
a = "angry"
a1 = "wütend"
b = "car"
b1 = "Auto"

#Schleife
for I in 1, 2, 3:
    #Eingabe
    print("Gebe die deutsche Übersetzung ein für:", a)
    a2=input()

#Ausgabe

    if a2 == a1:
        print(a2, "ist richtig")
        break
    else:
        print(a2, "ist falsch")
       
#Ende
print("angry-wütend")
soweit funktioniert er auch. Jetzt stellt sich die Frage wie komme ich an weitere Wörter zum Beispiel an b? Bei Zahlen könnte man ja einfach mit range(1,10,1) sagen er soll alle nehmen von 1-10 in 1er Schritten. Geht das auch bei Buchstaben? (a,z,1)?
BlackJack

@mettalqueen: Dir fehlen Datenstrukturen. Wenn man anfängt Namen zu nummerieren macht man in 99% der Fälle etwas falsch. Du hast Paare von Wörtern. Ein Paar könnte man jeweils als Tupel mit zwei Elementen modellieren und die dann in eine Liste stecken. Und dann mit einer Schleife über diese Liste iterieren und den Benutzer nach den Übersetzungen fragen.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Schau dir mal Listen und Tupel an und dann organisier deine Woerter damit.

Man kann auch eine Schleife ueber Buchstaben haben, aber das ist in dem Fall nicht hilfreich, weil du mit den Buchstaben nicht auf deine Namen zugreifen kannst.
mettalqueen
User
Beiträge: 44
Registriert: Dienstag 7. Mai 2013, 23:02
Wohnort: Greifswald

ok danke, dann lese ich mal die nächsten 26 Seiten des Buches und dann bin ich bei Tupel.
Als Anfänger hat man auch garkeine möglichkeiten sein gelerntes Wissen irgendwie anzuwenden. Das wirklich doof und demotivierend
mettalqueen
User
Beiträge: 44
Registriert: Dienstag 7. Mai 2013, 23:02
Wohnort: Greifswald

Code: Alles auswählen

#!/usr/bin/python3

#Werte
p = 0.01

#Eingabe
print("Wieviel Perlen sind in einem Kreis?: ")
k=input()
kreis=float(k)

print("Aus wieviel Kreisen besteht die Figur?: ")
a=input()
anzahl=float(a)

#Berechnung

e = k * a
g = e * p
print("Die Aufgabe:", kreis, "*", anzahl)
print("Die Aufgabe:", e, "*", p)

#Ausgabe
print("Es wird benötigt:", g)
Als Werte habe ich für Kreis mal 4 genommen und Anzahl 81 (ergiebt ein Schwein)

Folgende Fehlermeldung spuckt er aus

Code: Alles auswählen

Traceback (most recent call last):
  File "/home/anne/Arbeitsfläche/Python/perlen.py", line 17, in <module>
    e = k * a
TypeError: can't multiply sequence by non-int of type 'str'
>>> 
desmater
User
Beiträge: 32
Registriert: Donnerstag 18. April 2013, 20:53

Du versuchst zwei strings miteinander zu multiplizieren.
Gruß
mettalqueen
User
Beiträge: 44
Registriert: Dienstag 7. Mai 2013, 23:02
Wohnort: Greifswald

Ich habe es schon gelöst bekommen mit Hilfe
int() gibt einen String aus und mit Strings kann man nicht rechnen

Irgendwie stand das nicht im Buch

Code: Alles auswählen

#!/usr/bin/python3

#Werte
p = 0.01

#Eingabe
print("Wieviel Perlen sind in einem Kreis?: ")
k=input()
kreis=float(k)

print("Aus wieviel Kreisen besteht die Figur?: ")
a=input()
anzahl=float(a)

#Berechnung

e = kreis * anzahl
g = e * p
print("Die Aufgabe:", kreis, "*", anzahl)
print("Die Aufgabe:", e, "*", p)

#Ausgabe
print("Es wird benötigt:", g)
Antworten