Cooles Video. Prima erklärt. In JavaScript gibt es Generatoren mittlerweile auch. Hatte damals Schwierigkeiten zu verstehen, was sie machen. Deine Ausführungen haben mir geholfen, dass Konzept besser zu verstehen.
@TheMorpheusTutorials6 жыл бұрын
Vielen Dank :)
@nayjer25764 жыл бұрын
Bei der Prim.Funktion kann man sich das einfach so denken: Falls es eine Zahl größer alsd sqrt(x) gibt mit (sqrt(x) + a) * (sqrt(x) - b) (muss logischerweise -b sein, weil sonst wäre das Produkt größer als x), dann gibt es auch eine Zahl kleiner als sqrt(x), die x teilt, also reicht es aus alle Zahlen bis sqrt(x) zu betrachten.
@TheMorpheusTutorials4 жыл бұрын
Joa
@3xtr33m33 жыл бұрын
Sehr konfuse Erklärung für mich, der noch nie was davon gehört hat. Bei den bisherigen Tutorials habe ich es mir verkniffen, da die Videos schon älter sind und ich es dennoch verstanden habe, aber hier muss ich es mal loswerden. Du erklärst die Hälfte des Videos erstmal einen Algorithmus, der nichts mit dem eigentlichen Videotitel zu tun hat. Du kannst stattdessen diesen Code auch posten oder was anderes nehmen. Und dann ist mir bis zum Schluss nicht klar geworden, was yield nun eigentlich bedeutet, warum damit aus der while TrueSchleife geprungen wird. Und am Ende kommt noch dieser prime_generator aus dem Nichts. Ich hab das Gefühl, du hast zwar die Videoidee im Kopf, schreibst aber vorher kein Script sondern startest die Aufnahme und schaust selbst mal, was so bei rumkommt. Klar, ist zeitsparender. Aber manchmal wünsche ich mir eine durchdachtere Erklärung oder anschaulichere Beispiele. Auch verstärkst du die Verwirrung, wenn du sinngemäß Sachen sagst wie: Jetzt wird es komisch. Ich bin dankbar für deine Reihe, nicht falsch verstehen. Aber dieses Video hat bei mir leider mehr Fragezeichen aufgeworfen als ausgeräumt. Vielleicht machst du das mittlerweile anders, ich wollts dennoch mal loswerden. Danke trotzdem und ich bin gespannt, was noch kommt.
@LB-qr7nv3 жыл бұрын
Ich verstehe was du meinst, es ging mir am Anfang auch so. Mittlerweile kann ich etwas besser programmieren(durch Morpheus und Übung) und glaube es verstanden zu haben. fetchPrimes würde unendlich lange jede natürliche Zahl auf Primzahl prüfen lassen und nichts speichern oder zurückgeben. Benutzt man return wird die Funktion gleichzeitig abgebrochen und müsste beim nächsten Aufruf wieder bei 2 starten. Der Fortschritt kann gespeichert werden in prim_generator, um bei z.B. der Zahl 3 weitermachen zu können. Das funktioniert allerdings nicht mit return, sondern mit yield, da durch yield gespeichert werden kann wo man pausiert hat. Genau wie return kann man mit yield ein Ergebnis zurückgeben an die Aufrufstelle. Das send() ist ein Befehl an das pausierte Objekt prime_generator weiterzumachen. Variablen in der Funktion und Stelle des yields sind im Objekt gespeichert. Es geht dann nach dem yield weiter mit: Bei number += 1
@marcojahn2564 Жыл бұрын
Absolut korrekt. Der Ersteller wirkt absolut hektisch und unvorbereitet und verhaspelt sich da gerne mal in Sachen, die mit dem eigentlichen Thema überhaupt nichts zu tun haben. Zudem merkt man ihm an, dass er vergessen hat, dass nicht jedem klar ist, wie man überhaupt auf eine Primzahl testet, so dass man erstmal überlegen muss,was er jetzt mit der Wurzel will. Auch diese ständigen Änderungen nerven. Da springt er mittendrin mal 2 Zeilen nach oben und fügt irgendwo nochmal ein "=2" ein, ohne zu erklären,wozu das nun gut sein soll. Was eine Yield-Funktion ist, weiß ich auch nach 6maligen Anschauen dieses Videos noch immer nicht. Das hier gibt übrigens ChatGPT aus: def is_prime(n): """Funktion, die prüft, ob eine Zahl eine Primzahl ist""" if n
@Mondkraft7 жыл бұрын
Eine Frage hätte ich. Kann man mit PyCharm auch zwei Codes miteinander vergleichen und wenn ja wie geht das? Okay habs gefunden einfach 2 Files im Projektordner markieren und dann mit rechtsklick auf compare files. Ich hab in dem Code einen kleinen Fehler eingebaut und hab es dann mit der fehlerfreien Version verglichen. Ist wie die Suche nach der Nadel im Heuhaufen, wenn man aber die beiden Dateien vergleicht findet man sehr schnell den Fehler :)
@TheMorpheusTutorials7 жыл бұрын
cooles Feature, vor allem, wenn du Code von jemand andrem mergen willst :)
@koenigmaurice6 жыл бұрын
Ist yield dann praktisch ein return, nur dass es danach weiter geht?
@friedsoftunity05356 жыл бұрын
nice, in einem satz zusammengefasst ^^ :)
@nayjer25764 жыл бұрын
Yeet
@TheMorpheusTutorials4 жыл бұрын
😅
@fidellowawa31655 жыл бұрын
Ich wunder mich, warum die 3, 5 und 7 als Primzahlen ausgegeben werden. Man gehe in die for schleife der isPrime Funktion: wenn number = 3 und i = 3, dann ist 3 % 3 == 0 und es müsste dann false ausgegeben werden? Gleiches Spiel mit der 5 und 7. Dennoch tauchen die Zahlen am Ende als Primzahl auf... Habe ich hier irgendeinen Denkfehler?
@fidellowawa31655 жыл бұрын
Edit: da für number = 3, 5 oder 7 der Endwert durch die Wurzel kleiner ist, als der Startwert, wird die for-schleife erst gar nicht ausgeführt und somit direkt auf true gesprungen. :-)
@Kig_Ama4 жыл бұрын
Kann man die py.files irgendwo runterladen?
@yxngcartier4 жыл бұрын
"Die Wurzel einer Zahl +1 ist nicht größer als die Zahl" was ist dann mit der Wurzel von 2?
@zehnsieben4 жыл бұрын
2 ist durch 2 teilbar, sprich es geht nicht in die for-Schleife
@EuleLarve3 жыл бұрын
ein kleiner Fehler mit der Erklärung zur +1: Die +1 hat nichts mit der Primzahl zu tun sondern mit der range Funktion.
@lukaswalker2342 Жыл бұрын
Imagine modulo würde nicht mit floats klar kommen 😳
@hannesbrantner9296 жыл бұрын
Ich glaube Py2Exe ist noch nicht für die Opcodes aus Python 3.6 ausgelegt ^^
@TheMorpheusTutorials6 жыл бұрын
ne, generell nur bis 3.5
@mikescelo7784 жыл бұрын
Ich verstehe nichts mehr. Kann ein Algorithmus schneller sein? Danke für dein Video. Ich muss erst einmal darüber schlafen .
@TheMorpheusTutorials4 жыл бұрын
Das Video ist auch schon ziemlich fortgeschritten 😉 Ein Algorithmus kann schneller sein, ja. Nimm sortieren zb. Es gibt welche die doppelt so schnell sind wie andere
@jonnywinkler63284 жыл бұрын
Wie hast du programmieren gelernt, dass würde mich interessieren. Super Video :)
@TheMorpheusTutorials4 жыл бұрын
Danke für die Frage 😊 ich mach dazu ein Video auf dem vlog Kanal
@jonnywinkler63284 жыл бұрын
@@TheMorpheusTutorials Wie heißt der Kanal
@starcrafter99673 жыл бұрын
@@jonnywinkler6328 TheMorpheusVlogs müsste es sein
@mondkult8 жыл бұрын
Bei den meisten Pythonlisten kann man mit .pop() einen Wert auslesen der dann wieder aus dieser Liste gelöscht wird. Wer hätte das gedacht? L = [1,2,3,4,5,6,7,8,9] L.pop() L