Giter Club home page Giter Club logo

a-beautiful-code-in-python's Introduction

A-beautiful-code-in-Python

Eine launige Einführung in Python

Die Serie dient Anfängern zum Erlernen der Sprache. Anhand von Aufgaben werden Python-Befehle eingeführt und erläutert.

Zu jedem Programm gibt es ein Video auf YouTube

https://www.youtube.com/watch?v=C8R5zt7TIVU&list=PLhC_4AWNg9rnM_qAPyUU4Wo1kJoOAMC6_

Im Zweifel werden die Videos dann relativ lang, da ich die Befehle und die hinter dem Algorithmus liegenden Gedanken ziemlich ausführlich erläutere.

Nach Möglichkeit, versuche ich dabei, möglichst leicht lesbaren = pythonic Code zu erzeugen.

Nebenbei bemerkt, lerne ich dadurch auch noch einen ganze Menge dazu, denn nichts ist besser zum Lernen von neuen Inhalten geeignet, als das Erklären des Gelernten an einen Dritten :-)

Falls Ihr Optimierungsmöglichkeiten entdeckt, immer gen hier unter "Issues" hinterlegen.

Wenn Ihr etwas spenden wollt: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=WW3XE87GT4TZ8&source=url

Viel Spass bei den Beispielen wünscht

GRAVITAR

a-beautiful-code-in-python's People

Contributors

gravitar64 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

a-beautiful-code-in-python's Issues

#19 ist schon fast optimal

Damit es sensationell wird, müsste noch eine kamera eingebaut sein, die man an einen beliebigen Ort stellen kann und die Blickrichtung, sowie auf und ab bewegen kann.
Mit fast 70 Jahren ist man geistig nicht mehr so beweglich und froh, wenn einem sowas erleichtert wird.
Ich bin dran alle Videos durchzuarbeiten, nach dem ich bisher nur Basic programmiert habe, und alle sind schlichtweg spitze. Danke dafür.

Login

<title>Login</title> prepare("SELECT * FROM accounts WHERE USERNAME = :user"); //Username überprüfen $stmt->bindParam(":user", $_POST["username"]); $stmt->execute(); $count = $stmt->rowCount(); if($count == 1){ //Username ist frei $row = $stmt->fetch(); if(password_verify($_POST["pw"], $row["PASSWORD"])){ session_start(); $_SESSION["username"] = $row["USERNAME"]; header("Location: geheim.php"); } else { echo "Der Login ist fehlgeschlagen"; } } else { echo "Der Login ist fehlgeschlagen"; } } ?>

Anmelden



Einloggen
Noch keinen Account?

Nummern unsynchron

Die Videonummern 45-48 sind zwischen Github und Youtube nicht synchron.
Desweiteren fehlt das angekündigte Video zum Knacken der Enigma. Die Scriptdatei dazu ist allerdings da. Ist das eventuell ein Fehler? Da das Script nicht läuft, vermute ich mal, dass es Probleme gab und das Video dazu deshalb fehlt. Trifft das so zu? Kommt das Video noch? Die Erklärung zu dem Algorithmus würde mich sehr interessieren, da er nicht einfach zu verstehen ist.

mandelbulb reference

Hallo Gravitar, hi,
erstmal finde ich die Serie gut, habe etwas gelernt auch wenn ich mir nicht alles merken kann und einige Folgen mehrfach nacharbeiten muß.

Ich hatte mir in den Formeln einen Fehler eingebaut und darum das script von github zum Vergleichen genommen.
Habe da wohl noch eine ältere Version gehabt (jun.2022).

Daraus ergeben sich 2 Probleme:
1.
Im script werden die Bereiche negativ/positiv initialisiert -> (-BEREICH,BEREICH)
Die Darstellung nach der Berechnung schließt, entgegen der Ansage im Video, eine Spiegelsymmetrie in allen 3 Ebenen aus!
Das System ist mit den gewählten Parameter N = 8 siebenstrahlig (7). Es gibt eine Rotationsachse und
auf dieser Achse gibt es auf den Polen a eine Auswölbung, b entgegengesetzt eine Eindellung, außerdem gibt
es mehrere "Ringebenen", die gegeneinanderversetzt und nicht mittensymmetrisch sind.
Ich habe jetzt noch nicht die Dokumentation zu "Ursina" studiert aber es scheint das die einzige Symmetrie (Ursina.y) ist

Die Zahl der Ebenen und der "Strahlen" sieht von N abhängig aus ( N-1 Strahlen )
Aus der Annahme folgen Versuche mit N = 7 bzw 9, die Darstellung scheint in allen drei (3) Ebenen Spiegelsymmetrisch!
Mit N = 6 bzw 10 ergibt sich wieder eine unsymtrische Form.
Mir fehlen die mathematischen Kenntnisse für eine/n Herleitung/Beweis!
Meine monentane Lösung:

  punkte = []
  for x in range((BEREICH * (not (N % 2)) * -1),BEREICH):
      for y in range(BEREICH):
          hülle = False
          for z in range((BEREICH * (not(N % 2)) * -1),BEREICH):
              if not punkt_in_fraktal(x, y, z): continue
              
              for m1, m2, m3 in iter.product([-1,1], repeat= 3):
                  if N % 2:
                      punkte.append((x*m1, y*m2, z*m3))
                  elif not N % 2:
                      punkte.append((x, y*m2, z))

vielleich ist das ja noch Verbesserungswürdig.

start = pfc() -> woher, pfc ist nicht deklariert/initialisiert
export_ply_format('points.ply') -> mit welcher Bibliothek werden die Daten formatiert/exportiert?
Es gibt keine entsprechende "import"-Anweisung
Ich habe im Netz einige Daten gefunden aber keine Hinweise zu der Benutzung in/mit python/ursina.

Evolution of the Sudoku Solver ...

  • Visualisierung der Lösungsstrategie mit pygame

  • Weiterentwicklung der Strategie, z.B. nicht alle leeren_Felder checken, sondern erstmal die vom letzen Versuch veränderten Zellen (Spalte, Zeile und Block). Ich habe dein Projekt mal in C++ nachgeschrieben. Mit deinem Python_Code komme ich bei deinem Referenz-Sudoku auf 0,118 Sekunden, in C++ auf 0,062 Sekunden und mit dem verbesserten Algorithmus auf 0,019 Sekunden.

  • Hab noch eine weitere Optimierung mit Pointern im Kopf, dies ließe sich jedoch nicht in Python umsetzen, dürfte jedoch nochmal eine deutliche Beschleunigung bedeuten, da die Listen für die Kandidaten und die freien Felder wegfallen würden. In meineM C++_Code habe ich jedoch nur für die freien Felder eine Liste verwendet und die Kandidaten als Array von Bool-Werten dargestellt, mit Listen war C++ langsamer als Python.

Hab mir schon überlegt ob ich dazu mal ein Video machen soll.

Teil4: visualisieren von PI

Hallo,
ich bin mittlerweile bei dem 9.Youtube Tutorial
und habe bis jetzt alle hingekriegt, nur bei Teil 4 dem visualisieren von Pi bin ich gescheitert. Selbst mit dem Code von hier bekomme ich folgende Fehlermeldung:
zahl = int(pi[n]) ValueError: invalid literal for int() with base 10: '.'

Ich danke schon mal im Voraus für Hilfe.

Gruß FS

danke für deine gute arbeit

Als erstes, sorry für den möglicherweise unkonventionellen weg ;) aber ich habe tatsächlich keine möglichkeit gefunden dich "privat" anzuschreiben.Ich möchte dir gern eine kleine spende zukommen lassen (wirklich ne kleinigkeit) und hab halt kein paypal konto oder so gefunden. Ich finde einfach dass deine videos (mir persönlich) sehr helfen und du es sehr gut verständlich in einem angemessenen Tempo erklärst und wollte mich eben dafür inform einer spende bedanken weil ich finde dass das auch enorm zeit bedarf um das alles zu erklären.

Hoffe das kommt nicht irgendwie creepy rüber. falls doch ignorier es einfach.
In jedem Falle, weiter so und danke für deine Videos

Themensammlung für die nächsten Videos

Hier eine Liste von Ideen für die nächsten Videos:

  • Memory
    Das gute, alte Memory-Spiel. Mit netten Bildern und einigen Varianten (3 einer Sorte, nach jedem Versuch werden 2 Karten ausgetauscht).

  • I.O. Silver
    Spieleprogrammierung. Evtl. zu groß für ein einzelnes Video. Könnte aber in Unity, Boo realisiert werden. Boo ist aber nur an Python angelehnt. Evtl. verlassen wir hier zu schnell das eigentliche Thema.

  • BINGO-Solver
    Mit dem Raspberry Pico ein Programm entwickeln, dass die Bingo-Blätter einscannt (Kamera-Modul) und die ausgerufenen Nummern mithört (Mikrofon-Sensor) um dann ein BINGO auszugeben.

INZWISCHEN ERLEDIGT:

  • Installation von Python, VS Code, GitHub (ERLEDIGT 19.01.2019 mit Video 1a)
    evtl. reicht es aber auch auf andere Videos zu verlinken

  • Chaotisches Pendel (ERLEDIGT 11.02.2019 mit Video 12)

  • 3D-Berechnungen (Rotation, Skalierung, Transpose, Projektion) (ERLEDIGT 15.09.2019 mit Video 19)

  • Labyrinthgenerator
    Generiert ein Labyrinth und findet anschließen den Weg dadurch (2d, pygame). Gutes Beispiel für Rekursion, Vertiefung des Flood Fill Algorithmus aus Minesweeper. (ERLEDIGT 17.11.2019 mit Videos 23 + 24)

  • Game of Life
    Simulation des guten alten Game of Life von Conway. Könnte auch ganz gut zur Demonstration von Objekten (Zellen) und Klassen geeignet sein (z.B. Methode dieOrLife). (ERLEDIGT 13.01.2020 mit Video 26)

  • Poker
    Gutes Beispiel für objektorientierte Programmierung (Karte, Deck, Bewertung etc.)
    (ERLEDIGT 17/24.07.2020 mit Videos 33 + 34)

Waldbrandsimulation

Hi,

die Waldbrandsimulation enthält noch einen Fehler. Ein Baum wird zufällig in Brand gesteckt, dieser brennt aber nicht ab, sondern steckt nur die Nachbarn in Brand. Dadurch brennt nichts mehr, wenn man die Brandwahrscheinlichkeit nahe 1, oder 1 setzt. Da stehen dann nur noch Bäume ohne Nachbarn und nichts brennt mehr.

Richtig wäre es so:
...
brand = set(rnd.sample(bäume, int(len(bäume)*BRAND)))
brand |= feuerwalze(bäume-brand, brand)
...

Leider gibt es noch ein weiteres Problem für die Zukunft. Python gibt eine Warnung aus, dass Sample zukünftig nicht mehr mit Sets umgehen kann.

> Hallo Gravitar! Vielen herzlichen Dank für die tolle Videoreihe! Vor kurzem habe ich mal wieder ein Heft mit Nonogrammen in die Hände bekommen, da kam mir die Idee, dass das ein schönes Projekt für Python wäre. Habe dann auch sofort mit der Programmierung angefangen. Das Hauptproblem ist die riesige Anzahl von Möglichkeiten. Selbst ein kleines Nonogramm wie dieser kleine Vogel ![Taube_Nono_s](https://user-images.githubusercontent.com/68644672/179480750-f298bcce-d76f-4048-9654-c64bad79c88e.png) hat schon fast 1012 Möglichkeiten. Alle Möglichkeiten durchzuprobieren ist also keine gute Idee 😏.

Hallo Gravitar! Vielen herzlichen Dank für die tolle Videoreihe! Vor kurzem habe ich mal wieder ein Heft mit Nonogrammen in die Hände bekommen, da kam mir die Idee, dass das ein schönes Projekt für Python wäre. Habe dann auch sofort mit der Programmierung angefangen. Das Hauptproblem ist die riesige Anzahl von Möglichkeiten. Selbst ein kleines Nonogramm wie dieser kleine Vogel Taube_Nono_s hat schon fast 1012 Möglichkeiten. Alle Möglichkeiten durchzuprobieren ist also keine gute Idee 😏.

Mhm, knifflig...., aber interessant...., könnte etwas dauern bis ich da einen Lösungsansatz entwickelt habe... lege es mal in meinen Hinterkopf und warte auf Antwort.....

Originally posted by @Gravitar64 in #1 (comment)

Vorschlag: Erweiterung zum Dreieckspuzzle

Automatisierte Erzeugung der "Bauanleitung" für den DFS-Algorithmus:
https://github.com/techrabbit58/Tiles

Der Output der Generatorfunktion kann direkt von der dfs() Funktion als Wert des globalen "kanten" Dictionaries verarbeitet werden. Dass der Generator ein um 60° gedrehtes Kantenschema verwendet, ist anscheinend kein Problem.

Fundort: https://github.com/techrabbit58/Tiles (Ich bin mir nicht sicher, ob YT meine Antwort in der Kommentarsektion genommen hat.)

Viele Grüße
Dieter
..

Teil_15_Sudoku_Top100_hard.txt - erste Zeile keine eindeutige Lösung

Die erste Zeile in dem Top100 File enthält ein Sudoku mit nur 16 Ziffern und kann daher nicht eindeutig sein:

.1....7.....3..2...7...........71...6......4.3........4..5....3.2..8...........6.

Mein Solver findet 10106 Lösungen. Vermutlich ist beim Eintragen in die Top100 eine Ziffer verloren gegangen.

Insgesamt eine sehr schöne Solver Implementierungen und wirklich schnell. Daumen hoch!

QT-TabelWidget und Datenbankanbindung an SQLite und MSSQL

Hallo,
ich bin begeistert von Deinen Videos. Die Erklärungen sind sehr gut.
Ich würde mir ein Video wünschen, wo eine Datenbank ausgelesen wird und in einem QT - TableWidget angezeigt werden bzw. bearbeitet werden können.
Danke

Python Tutorial, GUI-App mit Qt

Hallo,
könntest Du bei dem Python Tutorial, GUI-App mit Qt: #4 weitermachen wie man daten neue Daten in die Liste einträgt und
wie man Daten verschiebt in eine andere Liste/Datenbank (von offene Leistungen in offene Rechnungen).
Das habe ich bis jetzt noch nirgends gefunden wie man das macht :-) und tolle Videos.
Grüße Holger

ich benötige ein wenig hilfe

Hallo Gravitar,
Ich könnte deine Hilfe für meine Bachelorarbeit benötigen.
Es geht um das erstellen eines Hypercubes im 3D-Program Autodesk Maya.
Durch einlesen und dein Tutorial über das erstellen eines Hypercubes habe ich eine gute Basis aber ich scheitere an nicht vorhandenen Kenntnissen im Coding Bereich.
Falls du irgendwie Zeit findest und mir ein paar Tipps geben könntest wäre das super.

email: [email protected]

LG und vielen Dank für deine Arbeit.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.