Searching...
Deutsch
EnglishEnglish
EspañolSpanish
简体中文Chinese
FrançaisFrench
DeutschGerman
日本語Japanese
PortuguêsPortuguese
ItalianoItalian
한국어Korean
РусскийRussian
NederlandsDutch
العربيةArabic
PolskiPolish
हिन्दीHindi
Tiếng ViệtVietnamese
SvenskaSwedish
ΕλληνικάGreek
TürkçeTurkish
ไทยThai
ČeštinaCzech
RomânăRomanian
MagyarHungarian
УкраїнськаUkrainian
Bahasa IndonesiaIndonesian
DanskDanish
SuomiFinnish
БългарскиBulgarian
עבריתHebrew
NorskNorwegian
HrvatskiCroatian
CatalàCatalan
SlovenčinaSlovak
LietuviųLithuanian
SlovenščinaSlovenian
СрпскиSerbian
EestiEstonian
LatviešuLatvian
فارسیPersian
മലയാളംMalayalam
தமிழ்Tamil
اردوUrdu
Learn Python 3 the Hard Way

Learn Python 3 the Hard Way

A Very Simple Introduction to the Terrifyingly Beautiful World of Computers and Code
von Shaw Zed A. 2017 319 Seiten
3.93
500+ Bewertungen
Hören
Listen to Summary
Try Full Access for 7 Days
Unlock listening & more!
Continue

Wichtige Erkenntnisse

1. Beherrschen Sie die Einrichtung und die wichtigsten Werkzeuge

Alles, was Sie brauchen, ist ein Editor, ein Terminal und Python.

Legen Sie die Grundlagen richtig. Bevor Sie eine einzige Zeile Code schreiben, stellen Sie sicher, dass Ihr Computer korrekt eingerichtet ist. Das bedeutet, Python 3.6 oder höher zu installieren, einen Programmier-Texteditor wie Atom zu verwenden (vermeiden Sie IDEs wie IDLE) und den Umgang mit der Kommandozeile Ihres Betriebssystems zu erlernen (Terminal auf macOS/Linux, PowerShell auf Windows). Diese Werkzeuge bilden Ihr Fundament.

Üben Sie Terminalbefehle. Die Kommandozeile ist der Ort, an dem Sie Ihre Python-Skripte ausführen und wie ein Programmierer mit Ihrem Computer interagieren. Nehmen Sie sich Zeit, grundlegende Befehle zur Navigation und Dateiverwaltung zu lernen:

  • pwd: Zeigt das aktuelle Verzeichnis an (wo Sie sich befinden)
  • cd: Wechselt das Verzeichnis (bewegt sich in einen anderen Ordner)
  • ls (bzw. dir unter Windows): Listet den Inhalt eines Verzeichnisses auf
  • mkdir: Erstellt ein neues Verzeichnis
  • rmdir: Löscht ein Verzeichnis

Verwenden Sie einen Texteditor. Ein Programmier-Texteditor bietet Funktionen wie Syntaxhervorhebung, die das Schreiben von Code erleichtern. Speichern Sie Ihre Python-Dateien mit der Endung .py. Lernen Sie, wie Sie Dateien erstellen, speichern und öffnen sowie wie Sie sie über das Terminal ansteuern.

2. Schreiben Sie Code exakt und schärfen Sie Ihre Aufmerksamkeit fürs Detail

Jeder einzelne Buchstabe muss genau stimmen, damit es funktioniert.

Präzision ist entscheidend. Programmieren verlangt höchste Aufmerksamkeit für Details. Computer sind wortwörtlich: Sie führen genau das aus, was Sie tippen, nicht das, was Sie meinen zu tippen. Das exakte Abschreiben von Codebeispielen, inklusive Satzzeichen und Leerzeichen, trainiert Ihr Gehirn, auf diese wichtigen Details zu achten.

Trainieren Sie Muskelgedächtnis. Code manuell zu tippen statt zu kopieren stärkt das Muskelgedächtnis und die Vertrautheit mit Syntax und gängigen Symbolen. Diese Wiederholung ist eine Kerntechnik der „harten“ Lernmethode, die darauf abzielt, grundlegende Fähigkeiten durch Übung zu festigen.

Erkennen Sie Unterschiede visuell. Eine wichtige Fähigkeit ist es, schnell Unterschiede zwischen Ihrem Code und dem korrekten Beispiel zu erkennen. Wenn Ihr Code nicht funktioniert, vergleichen Sie ihn Zeile für Zeile mit dem Original und achten Sie auf kleinste Abweichungen. Code rückwärts oder laut zu lesen kann helfen, Fehler besser zu entdecken.

3. Verstehen Sie Fehler und lernen Sie, sie zu beheben

Hören Sie auf zu starren und fragen Sie nach.

Fehler sind unvermeidlich. Sie werden Bugs schreiben. Selbst erfahrene Programmierer machen Fehler. Der Computer liegt nicht falsch – Ihr Code tut es. Zu lernen, Fehlermeldungen zu lesen und zu verstehen, ist entscheidend, um Probleme zu beheben. Pythons Traceback zeigt Ihnen Datei, Zeilennummer und Art des Fehlers an.

Hinterfragen Sie Ihren Code. Starren Sie nicht einfach auf fehlerhaften Code und hoffen Sie auf eine Eingebung. Suchen Sie aktiv nach Informationen. Nutzen Sie print-Anweisungen, um Werte von Variablen an verschiedenen Stellen Ihres Programms auszugeben und so zu sehen, was passiert und wo es schiefgeht. Das ist die effektivste Debugging-Methode.

Zerstören Sie Ihren Code absichtlich. Sobald Ihr Code funktioniert, versuchen Sie, ihn auf verschiedene Arten zum Scheitern zu bringen. Dieses Spiel hilft Ihnen zu verstehen, wie Python Ihren Code interpretiert und wie unterschiedliche Fehler sich äußern. Zu wissen, wie man Code kaputtmacht, macht Sie besser darin, ihn zu reparieren.

4. Lernen Sie grundlegende Datentypen und Operationen kennen

In der Programmierung ist eine Variable nichts anderes als ein Name für etwas...

Speichern Sie Informationen. Variablen sind Namen, die Sie Daten wie Zahlen oder Text zuweisen. Das macht Ihren Code lesbarer und leichter zu verwalten. Werte weisen Sie Variablen mit dem Gleichheitszeichen = zu. Variablennamen sollten aussagekräftig sein und mit einem Buchstaben oder Unterstrich beginnen.

Führen Sie Berechnungen durch. Programmiersprachen bieten eingebaute Möglichkeiten für mathematische Operationen. Lernen Sie die Symbole für die Grundrechenarten:

  • +: Addition
  • -: Subtraktion
  • *: Multiplikation
  • /: Division
  • %: Modulo (Restwert)
  • <: Kleiner als
  • >: Größer als
  • <=: Kleiner oder gleich
  • >=: Größer oder gleich
  • ==: Gleich
  • !=: Ungleich

Arbeiten Sie mit Text. Text wird in der Programmierung als „Strings“ dargestellt. Strings sind Zeichenketten, die in einfache (') oder doppelte (") Anführungszeichen eingeschlossen sind. Sie können Variablen in Strings mit sogenannten f-Strings (vorangestellt mit f) und geschweiften Klammern {} einbetten. Spezielle „Escape-Sequenzen“ wie \n (Zeilenumbruch) oder \t (Tabulator) erlauben es, schwer tippbare Zeichen in Strings zu verwenden.

5. Arbeiten Sie mit Sammlungen: Strings, Listen und Dictionaries

Ein Dictionary (oder dict) ist eine Möglichkeit, Daten zu speichern wie eine Liste, aber statt nur Zahlen zur Datenabfrage zu verwenden, können Sie fast alles als Schlüssel nutzen.

Geordnete Sequenzen. Listen sind geordnete Sammlungen von Elementen, die mit eckigen Klammern [] und Kommas erstellt werden. Auf Elemente in einer Liste greifen Sie über ihren numerischen Index zu, beginnend bei 0. Listen sind nützlich, um Reihenfolgen zu bewahren und Elemente nach Position anzusprechen.

Schlüssel-Wert-Zuordnungen. Dictionaries (dicts) sind ungeordnete Sammlungen, die Daten als Schlüssel-Wert-Paare speichern, erstellt mit geschweiften Klammern {}. Sie greifen auf Werte über ihre Schlüssel zu, die fast jeden unveränderlichen Typ haben können (z. B. Strings oder Zahlen), nicht nur numerische Indizes. Dicts sind ideal, um Informationen anhand eines bestimmten Identifikators nachzuschlagen.

Manipulieren Sie Sammlungen. Sowohl Listen als auch Dictionaries verfügen über eingebaute Funktionen (Methoden), um ihre Inhalte zu verändern und zu nutzen. Zum Beispiel fügt append() ein Element zu einer Liste hinzu, pop() entfernt und gibt ein Element zurück, und Dictionary-Methoden wie get() holen Werte sicher ab. Das Verständnis dieser Methoden ist der Schlüssel zum Umgang mit Datenstrukturen.

6. Steuern Sie den Programmablauf mit Logik und Schleifen

Eine if-Anweisung erzeugt eine sogenannte „Verzweigung“ im Code.

Treffen Sie Entscheidungen. if-Anweisungen erlauben Ihrem Programm, Entscheidungen zu treffen, basierend darauf, ob ein boolescher Ausdruck (etwas, das True oder False ergibt) wahr ist. Code unter einer if-Anweisung wird nur ausgeführt, wenn die Bedingung erfüllt ist. Verwenden Sie elif (else if) für weitere Bedingungen und else für eine Standardaktion, falls keine der vorherigen Bedingungen zutrifft.

Wiederholen Sie Aktionen. Schleifen ermöglichen es, einen Codeblock mehrfach auszuführen. for-Schleifen iterieren über eine Sequenz von Elementen (wie eine Liste oder einen String) und führen den Codeblock für jedes Element aus. while-Schleifen führen einen Codeblock so lange aus, wie ein boolescher Ausdruck True bleibt.

Strukturieren Sie Codeblöcke. In Python werden Codeblöcke, die zu if, elif, else, for und while gehören, durch Einrückung (vier Leerzeichen) definiert. Ein Doppelpunkt : am Ende der Anweisung zeigt den Beginn eines neuen eingerückten Blocks an. Korrekte Einrückung ist entscheidend, damit Python die Struktur Ihres Codes versteht.

7. Organisieren Sie Code mit Funktionen

Funktionen erfüllen drei Aufgaben: 1. Sie benennen Codeabschnitte... 2. Sie nehmen Argumente entgegen... 3. Mit 1 und 2 können Sie eigene „Mini-Skripte“ oder „kleine Befehle“ erstellen.

Fassen Sie Code zusammen. Funktionen sind benannte, wiederverwendbare Codeblöcke, die mit dem Schlüsselwort def definiert werden. Sie erlauben es, zusammengehörige Anweisungen zu gruppieren und mit einem aussagekräftigen Namen zu versehen, was Ihre Programme übersichtlicher und verständlicher macht.

Nehmen Sie Eingaben entgegen. Funktionen können Argumente (Eingaben) annehmen, die in Klammern () nach dem Funktionsnamen in der def-Zeile angegeben werden. Diese Argumente wirken wie Variablen, die beim Aufruf der Funktion Werte erhalten. So können Funktionen mit unterschiedlichen Daten arbeiten.

Geben Sie Ausgaben zurück. Funktionen können mit dem Schlüsselwort return einen Wert zurückgeben. So kann das Ergebnis der Berechnung an anderer Stelle im Programm verwendet und oft einer Variablen zugewiesen werden. Funktionen, die keinen Wert explizit zurückgeben, liefern implizit None.

8. Verstehen Sie objektorientierte Konzepte: Klassen und Objekte

Eine Klasse ist eine Möglichkeit, eine Gruppe von Funktionen und Daten in einem Behälter zu bündeln, auf den Sie mit dem Punktoperator . zugreifen können.

Baupläne für Dinge. Klassen sind Baupläne oder Vorlagen zur Erzeugung neuer „Dinge“ (Objekte). Sie definieren Eigenschaften (Attribute, wie Variablen) und Verhaltensweisen (Methoden, wie Funktionen), die Objekte dieser Klasse besitzen. Eine Klasse wird mit dem Schlüsselwort class definiert.

Instanzen von Bauplänen. Ein Objekt ist eine konkrete Instanz, die aus einer Klassenvorlage erzeugt wird. Sie erstellen ein Objekt, indem Sie die Klasse instanziieren, was aussieht wie ein Funktionsaufruf (z. B. mein_objekt = MeineKlasse()). Jedes Objekt besitzt seine eigene, einzigartige Datenmenge basierend auf der Klassendefinition.

Initialisieren Sie Objekte. Die Methode __init__ ist eine spezielle Funktion innerhalb einer Klasse, die automatisch ausgeführt wird, wenn ein neues Objekt erstellt wird. Sie dient dazu, den Anfangszustand des Objekts festzulegen, meist durch Zuweisung von Werten an seine Attribute. Der erste Parameter jeder Methode in einer Klasse, auch __init__, heißt konventionell self und verweist auf das Objekt selbst.

9. Navigieren Sie OOP-Beziehungen: Is-A, Has-A, Vererbung und Komposition

Die meisten Verwendungen von Vererbung lassen sich vereinfachen oder durch Komposition ersetzen, und Mehrfachvererbung sollte unbedingt vermieden werden.

Vererbung (Is-A). Vererbung ist eine Beziehung, bei der eine Klasse („Kind“ oder „Unterklasse“) Eigenschaften und Verhaltensweisen von einer anderen Klasse („Elternteil“ oder „Oberklasse“) übernimmt. Das ist eine „ist-ein“-Beziehung (z. B. ein Hund ist ein Tier). Die Unterklasse erbt Methoden und Attribute der Oberklasse, die sie implizit nutzen, überschreiben oder mit super() anpassen kann.

Komposition (Has-A). Komposition ist eine Beziehung, bei der eine Klasse Instanzen anderer Klassen als Bestandteile enthält. Das ist eine „hat-ein“-Beziehung (z. B. ein Auto hat einen Motor). Statt Funktionen zu erben, nutzt die Klasse die Funktionalität der enthaltenen Objekte, indem sie deren Methoden aufruft.

Wählen Sie mit Bedacht. Sowohl Vererbung als auch Komposition fördern die Wiederverwendung von Code, doch Komposition wird wegen ihrer Flexibilität und Klarheit meist bevorzugt, insbesondere um komplexe Mehrfachvererbung zu vermeiden. Verwenden Sie Vererbung, wenn eine klare Hierarchie und gemeinsame Kernfunktionalität vorliegt; nutzen Sie Komposition, um Objekte aus verschiedenen Teilen zusammenzusetzen.

10. Entwickeln Sie Software schrittweise mit automatisierten Tests

Software zu testen ist definitiv langweilig und mühsam, also schreiben Sie lieber ein bisschen Code, der das für Sie übernimmt.

Automatisieren Sie die Überprüfung. Automatisierte Tests sind kleine Codeabschnitte, die prüfen, ob andere Teile Ihres Codes wie erwartet funktionieren. Mit einem Test-Framework wie nose schreiben Sie Testfunktionen (beginnend mit test_), die mit Assertions (z. B. assert_equal) Ergebnisse überprüfen.

Entwickeln Sie testgetrieben. Eine wirkungsvolle Methode ist die „testgetriebene Entwicklung“, bei der Sie den Test vor dem eigentlichen Code schreiben. Sie formulieren einen Test, der beschreibt, wie der Code funktionieren soll, sehen ihn scheitern und schreiben dann gerade so viel Code, dass der Test besteht. So stellen Sie sicher, dass Ihr Code Anforderungen erfüllt und testbar ist.

Gewinnen Sie Sicherheit. Automatisierte Tests bieten ein Sicherheitsnetz. Wenn Sie Änderungen vornehmen oder neue Funktionen hinzufügen, zeigen Ihnen die Tests schnell, ob bestehende Funktionalität beschädigt wurde. So können Sie Ihren Code mit mehr Vertrauen überarbeiten und verbessern, ohne alles manuell prüfen zu müssen.

11. Wenden Sie Ihr Wissen an, um eine Webanwendung zu erstellen

Die meisten Softwareprogramme tun Folgendes: 1. Sie nehmen eine Eingabe von einem Menschen entgegen. 2. Sie verändern sie. 3. Sie geben etwas aus, um zu zeigen, wie es sich verändert hat.

Web-Frameworks erleichtern die Arbeit. Webanwendungen müssen Netzwerk-Anfragen verarbeiten, URLs routen, Eingaben aus Formularen auswerten und HTML-Antworten erzeugen. Frameworks wie Flask bieten Werkzeuge und Strukturen, um diese Komplexität zu bewältigen, sodass Sie sich auf die Logik Ihrer Anwendung konzentrieren können.

Verarbeiten Sie Anfragen und Antworten. Eine Webanwendung wartet auf Anfragen eines Browsers (z. B. eine bestimmte URL). Je nach URL und Anfragemethode (GET zum Anzeigen, POST zum Absenden von Formularen) führt die Anwendung spezifischen Python-Code (View-Funktionen) aus. Dieser verarbeitet Eingaben, interagiert mit Ihrer Spiellogik und erzeugt eine HTML-Antwort, die an den Browser zurückgesendet wird.

Nutzen Sie Templates und Sessions. Templates (wie Jinja2, das Flask verwendet) ermöglichen es, dynamische HTML-Seiten zu erstellen, indem Sie Python-Variablen und Logik in die HTML-Struktur einbetten. Sessions bieten eine Möglichkeit, Informationen über einen bestimmten Nutzer über mehrere Anfragen hinweg zu speichern – unerlässlich, um den Spielstand zu erhalten, während der Nutzer zwischen Seiten wechselt.

Zuletzt aktualisiert:

Rezensionen

3.93 von 5
Durchschnitt von 500+ Bewertungen von Goodreads und Amazon.

Lerne Python 3 auf die harte Tour erhält gemischte Bewertungen. Viele Anfänger schätzen das Buch wegen seines praxisorientierten Ansatzes und der starken Betonung des Programmierens. Der klare Stil und die gründliche Vermittlung der Grundlagen werden besonders gelobt. Dennoch kritisieren einige Leser den herablassenden Ton des Autors sowie den plötzlichen Anstieg des Schwierigkeitsgrades gegen Ende. Während das Buch gut geeignet ist, um die Syntax zu erlernen, eignet es sich weniger, um komplexere Konzepte wirklich zu verstehen. Zudem werden veraltete Inhalte und fehlende Erklärungen zu bestimmten Themen als Schwächen genannt.

Your rating:
4.62
2 Bewertungen

Über den Autor

Shaw Zed A. ist der Autor von „Learn Python 3 the Hard Way“. Er ist bekannt für seine unkonventionellen Lehrmethoden und seinen direkten Schreibstil. Shaw legt großen Wert auf einen praxisorientierten Ansatz beim Programmierenlernen und ermutigt seine Leser häufig dazu, den Code selbst abzutippen, anstatt ihn einfach zu kopieren und einzufügen. Seine Bücher sind so gestaltet, dass sie reale Programmiererfahrungen widerspiegeln – inklusive der Frustrationen und Herausforderungen, die damit einhergehen. Shaw übt Kritik an bestimmten Programmierpraktiken und Werkzeugen, darunter integrierte Entwicklungsumgebungen (IDEs) und Aspekte der objektorientierten Programmierung. Darüber hinaus hat er weitere Programmierbücher in der „Learn the Hard Way“-Reihe verfasst, die verschiedene Programmiersprachen und Konzepte abdecken.

0:00
-0:00
1x
Dan
Andrew
Michelle
Lauren
Select Speed
1.0×
+
200 words per minute
Home
Library
Get App
Create a free account to unlock:
Requests: Request new book summaries
Bookmarks: Save your favorite books
History: Revisit books later
Recommendations: Personalized for you
Ratings: Rate books & see your ratings
100,000+ readers
Try Full Access for 7 Days
Listen, bookmark, and more
Compare Features Free Pro
📖 Read Summaries
All summaries are free to read in 40 languages
🎧 Listen to Summaries
Listen to unlimited summaries in 40 languages
❤️ Unlimited Bookmarks
Free users are limited to 10
📜 Unlimited History
Free users are limited to 10
Risk-Free Timeline
Today: Get Instant Access
Listen to full summaries of 73,530 books. That's 12,000+ hours of audio!
Day 4: Trial Reminder
We'll send you a notification that your trial is ending soon.
Day 7: Your subscription begins
You'll be charged on May 12,
cancel anytime before.
Consume 2.8x More Books
2.8x more books Listening Reading
Our users love us
100,000+ readers
"...I can 10x the number of books I can read..."
"...exceptionally accurate, engaging, and beautifully presented..."
"...better than any amazon review when I'm making a book-buying decision..."
Save 62%
Yearly
$119.88 $44.99/year
$3.75/mo
Monthly
$9.99/mo
Try Free & Unlock
7 days free, then $44.99/year. Cancel anytime.
Scanner
Find a barcode to scan

Settings
General
Widget
Loading...
Black Friday Sale 🎉
$20 off Lifetime Access
$79.99 $59.99
Upgrade Now →