Hi leute, ich hab den weg zu euch gefunden um, wie sollte es auch anders sein, python zu lernen
Grund dafür ist, dass ich an der UNI nun mit python 2.5 arbeite(-n muss) beim kurzen inet durchstöbern ist mir aufgefallen, dass python ja doch eine sprache ist, die es lohnt genauer zu beherrschen, nicht nur so 0815 wie wir es beigebracht bekommen, deshalb wollte ich euch jetzt mal fragen, welches tutorial ihr empfehlt....was sind meine ziele?...nun im großen und ganzen will ich eigentlich die grundkenntnisse von python richtig gut beherrschen (hab von a dive into python und ähnliches gehört!?) zum anderen will ich aber auch weiterführendes wie website programmierung und auch 3d Programmierung versuchen (betonung liegt auf versuchen) und wenn es funzt, dann natürlich auch weiter ausbauen, aber auf der suche nach einem tut was das alles einschließt (mal abgesehen von "Python von Peter Kaiser" bei galileo computing) hab ich nix gefunden.
ich bring natürlich auch erfahrungen mit (hätt ich ja fast vergessen) 5 Jahre hab ich mit Delphi 6 gearbeitet (wer es nicht kennt basiert eig auf pascal) und mit Html hab ich mich auch ein wenig beschäftigt.
vlt gibt es ja ein tut, was gaaaaaanz zufällig erklärt wie man von delphi auf python ganz easy umsteigen kann ok wohl eher nicht^^
wär jedenfalls schön wenn ihr mir bischen weiterhelfen könnt
MfG Fantacoca....der erfrischende genuss^^
python lernen zum xten....
Hallo und willkommen im Forum!
Ein guter Einstiegspunkt ist das offizielle Tutorial. Das solltest du auch wirklich verstehen und nicht alles per Copy&Paste nur ausprobieren.
Das gibt es auch noch in deutscher Übersetzung. Weiter arbeiten kannst du dann mit A Byte of Python oder Dive Into Python.
Am meisten Lernst du natürlich durch kleine Projekte oder Aufgaben. Wenn du Fragen hast oder dir etwas zu umständlich erscheint, dann weißt du ja jetzt, wo du fragen kannst
Sebastian
Edit: So hübsch das Buch von Galileo Computing auch aussehen mag, es ist wirklich nicht zu empfehlen. Es enthält eine Menge Fehler und beschreibt eher Java-Programmierung mit Python.
Ein guter Einstiegspunkt ist das offizielle Tutorial. Das solltest du auch wirklich verstehen und nicht alles per Copy&Paste nur ausprobieren.
Das gibt es auch noch in deutscher Übersetzung. Weiter arbeiten kannst du dann mit A Byte of Python oder Dive Into Python.
Am meisten Lernst du natürlich durch kleine Projekte oder Aufgaben. Wenn du Fragen hast oder dir etwas zu umständlich erscheint, dann weißt du ja jetzt, wo du fragen kannst
Sebastian
Edit: So hübsch das Buch von Galileo Computing auch aussehen mag, es ist wirklich nicht zu empfehlen. Es enthält eine Menge Fehler und beschreibt eher Java-Programmierung mit Python.
Das Leben ist wie ein Tennisball.
Vielen Danke für die schnelle Antwort, ich werde mich demnächst (sofort) ranmachen auszuprobieren, kleinere Aufgaben hab ich ja hier im Forum gefunden, wo es diese 250 stück Sammlung von Mathe aufgaben gibt, ich weiss grad ne mehr wie der thread heißt^^ aber dort kann man bestimmt auch einiges lernen (=
danke nochmal
MfG Fantacoca
danke nochmal
MfG Fantacoca
Projekt Euler: http://projecteuler.net/Fantacoca hat geschrieben:wo es diese 250 stück Sammlung von Mathe aufgaben gibt, ich weiss grad ne mehr wie der thread heißt^^ aber dort kann man bestimmt auch einiges lernen (=
Nein, da lernst du eigentlich so gut wie gar nichts über Python. Da geht es eher um Mathematik und Algorithmen und da du andere Lösungen einer Aufgabe erst dann zu Gesicht bekommst, wenn du die Aufgabe selbst gelöst hast (oder den einzugebenden Wert sonstwoher hast ...), hilft das auch nicht viel.
Lernen kannst du, indem du das/ein Tutorial wirklich durchARBEITEST. Viel im interaktiven Modus experimentierst etc.
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Und am besten hier im Forum mitliest, hin und wieder ist da ein sehr lohnenswerter Beitrag dabei (wenn man keine Ahnung von Python hat ist die Frequenz natuerlich groesser )numerix hat geschrieben:Lernen kannst du, indem du das/ein Tutorial wirklich durchARBEITEST. Viel im interaktiven Modus experimentierst etc.
Und mal ein dezenter Hinweis auf PEP 8
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
@numerix:
genau projekt euler wars^^...aber denkst du nicht, dass ein python"noob", beim lösen dieser aufgaben einen mindestens so großen lerneffekt für python hat (da er sich ja die komplette syntax zusammensuchen muss) wie auch für mathe?
@cofi
dieses PEP-8 hab ich so als regelwerk für python, aber nicht als tutorial verstanden, ist dass richtig?
edit1: Beim durcharbeiten des Tuts, fällt mir auf, dass ein user, der ahnung von der Syntax hat, und an eine Konsole rankommt, doch alles im Programm ändern kann, während des laufenden Programms......ist dass denn nicht gefährlich auch für die Stabilität des Programms? oder geht man mal in die Spiele Richtung, da ist doch für jeden das "Cheaten" schon "vorprogrammiert" ? oder seh ich da jetzt was falsch^^
edit2: Mensch mir tun sich schonwieder fragen auf ... ist dass gut oder schlecht? ^^
jedenfalls fällt mir auf, dass es python "wurst" ist, für was ich eine Variable nehme, und auch nicht vordefinieren muss für was die variable da ist? also bei delphi kenn ich es noch "var x,y,z: int" und dann ging dass auch nur für integer....aber beim interaktiven modus durch"spielen" ist mir aufgefallen, dass ich einmal a = "irgendnen string" sagen kann, aber anschließend auch gleich wieder a = 5+2 sagen kann....geht dass nur im interaktiven modus?
MfG Fantacoca
genau projekt euler wars^^...aber denkst du nicht, dass ein python"noob", beim lösen dieser aufgaben einen mindestens so großen lerneffekt für python hat (da er sich ja die komplette syntax zusammensuchen muss) wie auch für mathe?
@cofi
dieses PEP-8 hab ich so als regelwerk für python, aber nicht als tutorial verstanden, ist dass richtig?
edit1: Beim durcharbeiten des Tuts, fällt mir auf, dass ein user, der ahnung von der Syntax hat, und an eine Konsole rankommt, doch alles im Programm ändern kann, während des laufenden Programms......ist dass denn nicht gefährlich auch für die Stabilität des Programms? oder geht man mal in die Spiele Richtung, da ist doch für jeden das "Cheaten" schon "vorprogrammiert" ? oder seh ich da jetzt was falsch^^
edit2: Mensch mir tun sich schonwieder fragen auf ... ist dass gut oder schlecht? ^^
jedenfalls fällt mir auf, dass es python "wurst" ist, für was ich eine Variable nehme, und auch nicht vordefinieren muss für was die variable da ist? also bei delphi kenn ich es noch "var x,y,z: int" und dann ging dass auch nur für integer....aber beim interaktiven modus durch"spielen" ist mir aufgefallen, dass ich einmal a = "irgendnen string" sagen kann, aber anschließend auch gleich wieder a = 5+2 sagen kann....geht dass nur im interaktiven modus?
MfG Fantacoca
Die Euler-Aufgaben sind so, dass man bei normaler mathematischer Begabung so um die 50 Aufgaben relativ geradlinig und zügig lösen kann, aber irgendwann erreichen die Aufgaben ein mathematisches Level, wo es anfängt zu schmerzen.Fantacoca hat geschrieben:@numerix:
genau projekt euler wars^^...aber denkst du nicht, dass ein python"noob", beim lösen dieser aufgaben einen mindestens so großen lerneffekt für python hat (da er sich ja die komplette syntax zusammensuchen muss) wie auch für mathe?
Diejenigen Aufgaben, die man ad hoc lösen kann, lassen sich aber wiederum meist mit wenigen Zeilen Code lösen und man kommt dabei mit einem sehr schmalen Bereich der Möglichkeiten von Python aus. Fazit: Python lernen kann man mit Euler eigentlich nicht.
Der Rest deiner Fragen ist so, dass ich eigentlich nur erneut darauf hinweisen kann, dass du dich weiterhin mit dem Tutorial beschäftigen solltest. Gemerkt hast du ja schon, dass Python dynamisch typisiert ist, anders als z.B. Pascal/Delphi ...
Nein, das ist eine Eigenart der Sprache, geht also überall. Man muß ein wenig aufpassen, gewinnt dadurch jedoch eine ganze Menge Flexibilität und spart sich eine Menge Schreibarbeit. Zu dem Thema gehört auch, daß es eher unüblich ist, auf bestimmte Typen zu testen. Stattdessen geht man davon aus, daß alles in Ordnung ist, solange sich das betrachtete Objekt so *verhält* wie der erwartete Typ. Das Stichwort hierzu ist "Duck-Typing" (Quakt wie eine Ente, watschelt wie eine Ente, also wird es wohl eine Ente sein).
Deinen ersten Nachtrag habe ich, wie ich glaube, nicht so recht verstanden: Änderungen am Quelltext werden erst nach einem Neustart des Programmes übernommen. Es ist also definitiv kein Stabilitätsproblem.
Daß Nutzer, die Schreibzugriff auf den Quelltext haben, diesen verändern können ist durchaus "natürlich". Wenn man mit Python (und eigentlich allen anderen Sprachen auch) arbeitet, sollte man sich von der Idee verabschieden, die Funktionsweise verheimlichen zu können. Es gibt hierzu schier endlose Diskussionen hier im Forum. Insbesondere die Fraktion, die immerzu .exe-Dateien erzeugen will, stößt diese Diskussionen regelmäßig an. Um es kurz zu machen: Es gibt keine wirklich praktikable Lösung. Man kann den Nutzern ein paar Steine in den Weg legen, aber das wars dann auch schon. Und will man die Nutzer wirklich dermaßen bevormunden?
Deinen ersten Nachtrag habe ich, wie ich glaube, nicht so recht verstanden: Änderungen am Quelltext werden erst nach einem Neustart des Programmes übernommen. Es ist also definitiv kein Stabilitätsproblem.
Daß Nutzer, die Schreibzugriff auf den Quelltext haben, diesen verändern können ist durchaus "natürlich". Wenn man mit Python (und eigentlich allen anderen Sprachen auch) arbeitet, sollte man sich von der Idee verabschieden, die Funktionsweise verheimlichen zu können. Es gibt hierzu schier endlose Diskussionen hier im Forum. Insbesondere die Fraktion, die immerzu .exe-Dateien erzeugen will, stößt diese Diskussionen regelmäßig an. Um es kurz zu machen: Es gibt keine wirklich praktikable Lösung. Man kann den Nutzern ein paar Steine in den Weg legen, aber das wars dann auch schon. Und will man die Nutzer wirklich dermaßen bevormunden?
- mkesper
- User
- Beiträge: 919
- Registriert: Montag 20. November 2006, 15:48
- Wohnort: formerly known as mkallas
- Kontaktdaten:
Während des laufenden Programmes kann man den Code nicht ändern, es ist dann ein Neustart fällig. Aber Cheater werden immer Wege finden, bis sie merken, dass das Spiel dadurch langweilig wird.Fantacoca hat geschrieben:edit1: Beim durcharbeiten des Tuts, fällt mir auf, dass ein user, der ahnung von der Syntax hat, und an eine Konsole rankommt, doch alles im Programm ändern kann, während des laufenden Programms......
danke nochmal an euch drei, jedenfalls sind meine fragen damit behoben (=
wahrscheinlich lernt man eine sprache doch nicht allein durch ein tutorial, man muss sich wahrscheinlich ein "problem" stelen, und dieses mit hilfe des tutorials (zum beispiel als nachschlagewerk) lösen...oder lesen und lösen und nachschlagen ach wie auch immer, ich begeb mich mal auf die suche nach einem guten, einfachen, aber umfangreichen thema
wahrscheinlich lernt man eine sprache doch nicht allein durch ein tutorial, man muss sich wahrscheinlich ein "problem" stelen, und dieses mit hilfe des tutorials (zum beispiel als nachschlagewerk) lösen...oder lesen und lösen und nachschlagen ach wie auch immer, ich begeb mich mal auf die suche nach einem guten, einfachen, aber umfangreichen thema
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Also wenn du meinst dass Sprache lernen = Syntax kennen ist dann muss ich dich enttäuschen, da steht wesentlich mehr dahinter. Sonst könnte man ja Factor oder Scheme in 1 Stunde lernen, dem ist aber nicht so.Fantacoca hat geschrieben:aber denkst du nicht, dass ein python"noob", beim lösen dieser aufgaben einen mindestens so großen lerneffekt für python hat (da er sich ja die komplette syntax zusammensuchen muss) wie auch für mathe?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
- Rebecca
- User
- Beiträge: 1662
- Registriert: Freitag 3. Februar 2006, 12:28
- Wohnort: DN, Heimat: HB
- Kontaktdaten:
http://www.pythonchallenge.com/ gibt's auch noch. Der Knackpunkt der Aufgaben ist zwar vor allem Knobelei, aber man lernt viele verschiedene Bibliotheken kennen, und die Musterloesungen sind sehr lehrreich.
Offizielles Python-Tutorial (Deutsche Version)
Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
PEP 8 ist ein Styleguide. Wenn man sich an ihn haelt schreibt man a) lesbare b) konsistente (-> bessere) und c) schoenere Programme (auf Codeebene).
@Nachtrag2 (und bitte Packe mehrere Fragen in mehrere Topics, wenn sie groesser sind):
Python ist es ueberhaupt nicht egal, welchen Typ ein Objekt hat, Python ist es aber komplett Wurst, welcher Zettel an welchem Objekt klebt.
Python-"variablen" kann man sich nicht wie in C oder Delphi als Schublade vorstellen, in die Werte eingefuellt werden, sondern Pythonnamen (um mal von dem irrefuehrend bis falschen Begriff wegzukommen) sind wie Post-its. Bspw koennen auch mehrere Namen auf dasselbe Objekt verweisen.
@Nachtrag2 (und bitte Packe mehrere Fragen in mehrere Topics, wenn sie groesser sind):
Python ist es ueberhaupt nicht egal, welchen Typ ein Objekt hat, Python ist es aber komplett Wurst, welcher Zettel an welchem Objekt klebt.
Python-"variablen" kann man sich nicht wie in C oder Delphi als Schublade vorstellen, in die Werte eingefuellt werden, sondern Pythonnamen (um mal von dem irrefuehrend bis falschen Begriff wegzukommen) sind wie Post-its. Bspw koennen auch mehrere Namen auf dasselbe Objekt verweisen.
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
Hi leute, ich hab versucht ein Programm (natürlich nicht das erste) aus dem tutorial einzutippen, aber immer beim ausführen kommt immer nen Fehler, und den versteh ich nicht....vlt könnt ihr mir ja helfen? :_bitte_:
und mit folgender zeile soll das ganze aufgerufen werden
aber es kommt immer folgende fehlermeldung
das Programm hab ich in "PyScripter" eingegeben
wenn ich alles in die Konsole eingeb, dann kommt auch ein fehler aber den hab ich jetzt nicht im kopf...falls ihr den auch braucht, sagt bitte bescheid
PS: das Beispiel ist aus dem Python tutorial (oben verlinkt) auf deutsch, kapitel 4.7.1; und ich benutze python 2.5.2 ... liegts an der version? dass der irgendwas nicht kennt? ... *_grml_*
MfG Fantacoca
Code: Alles auswählen
def ask_ok(prompt, retries=4, complaint='Bitte Ja oder Nein!'):
while True:
ok = input(prompt)
if ok in ('j', 'J', 'ja', 'Ja'): return True
if ok in ('n', 'N', 'ne', 'Ne', 'Nein'): return False
retries = retries - 1
if retries < 0:
raise IOError('Benutzer abgelehnt!')
print(complaint)
Code: Alles auswählen
ask_ok("Willst du wirklich aufhören?")
Code: Alles auswählen
Traceback (most recent call last):
File "<interactive input>", line 1, in <module>
File "<interactive input>", line 3, in ask_ok
File "<string>", line 471, in Win32Input
File "<string>", line 464, in Win32RawInput
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 23: ordinal not in range(128)
wenn ich alles in die Konsole eingeb, dann kommt auch ein fehler aber den hab ich jetzt nicht im kopf...falls ihr den auch braucht, sagt bitte bescheid
PS: das Beispiel ist aus dem Python tutorial (oben verlinkt) auf deutsch, kapitel 4.7.1; und ich benutze python 2.5.2 ... liegts an der version? dass der irgendwas nicht kennt? ... *_grml_*
MfG Fantacoca
Zuletzt geändert von Fantacoca am Sonntag 18. Oktober 2009, 10:54, insgesamt 2-mal geändert.
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Kann ich nur unterstuetzen, Leonidas hat auch einen sehr empfehlenswerten Vortrag dazu gehalten: http://xivilization.net/flyserver/tex/u ... nicode.pdfPekh hat geschrieben:Benutze als Parameter für den Aufruf von 'ask_ok' erst einmal einen String ohne Umlaute. Und dann mache dich mit Python und der Unicode-Problematik vertraut.
Die Version ist aber durchaus ein Problem, denn das Tutorial ist fuer Python3.1 geschrieben/uebersetzt. Die Unterschiede zu Python2.x bzw Python 2.5 sind alles andere als vernachlaessigbar.
Du solltest entweder den Interpreter oder das Tutorial wechseln.
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
danke für die hinweise, dass mit dem umlaut hab ich so garnicht wahrgenommen, hab mir jetzt ein deutsches tut für python 2.4 geholt (http://wspiegel.de/pykurs/kurs_index.htm) danke nochmals
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Davon ist abzuraten, nicht, dass es nicht gut waere, aber es behandelt weit weniger, als das offizielle und erklaert es nicht sonderlich ausfuehrlich, dafuer wird Ueberfluessiges wie Struktugramme und UML behandelt.Fantacoca hat geschrieben:hab mir jetzt ein deutsches tut für python 2.4 geholt (http://wspiegel.de/pykurs/kurs_index.htm) danke nochmals
Was spricht denn gegen einen 3.1 Interpreter?
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
gegen 3.1 spricht an und für sich nichts außer dass wir an der uni nur mit maximal 2.6 schreiben dürfen (weil angeblich einige bibliotheken noch nicht für 3.x vorhanden sind, oder unsere admins zu faul sind diese einzubinden) deshalb dachte ich ich mach mich, solang iches an der uni brauch, erstmal mit 2.6 vertraut....oder ist der unterschied "eher" gering, sodass ich trotzdem in 2.x schreiben könnte?