Teste dein PYTHON WISSEN!
Vložit
- čas přidán 27. 07. 2024
- ► Mein Python-Buch amzn.to/3ARMbw8 (*)
► Hier geht es zur Klausur aus dem Video www.florian-dalwigk.de/python...
Inhalt 📚
In diesem Video zeige ich dir Python Aufgaben mit Lösungen. Also Python Übungsaufgaben für Einsteiger mit Lösungen. Alle Python Aufgaben werden wir nacheinander gemeinsam durchgehen und ich werde dir genau erklären, wie die einzelnen Lösungen in Python zustandekommen.
Ich wünsche dir viel Spaß mit dem Video.
00:00 | Einführung
01:31 | Aufgaben und Lösungen
EQUIPMENT(*)
🎤 Mikrofon amzn.to/3N0CHCL
✂️ Schnittprogramm amzn.to/3CZ217J
💻 Mein Laptop amzn.to/3ikMd5V
🖥️ Bildschirm amzn.to/3ig3yN5
SUPPORT
► Patreon / florian_dalwigk
► Unterstütze mich durch einen Kauf auf Amazon. Für dich entstehen keine Mehrkosten! (*) amzn.to/3LgyglY
SOCIAL MEDIA
💬 Discord: / discord
💡 Website: www.florian-dalwigk.de
📱 TikTok: / florian.dalwigk
🤳 Instagram: / florian.dalwigk
🐦 Twitter: / florian_dalwigk
📧 E-Mail: mailto:info@florian-dalwigk.de
(*) Bei den Amazon-Links (https.//amzn.to/???????) handelt es sich um Affiliate-Links. Wenn du etwas über diesen Link kaufst, bekomme ich eine kleine Provision. Der Preis ändert sich nicht, wenn du über diesen Link einkaufst. Vielen Dank für deine Unterstützung.
Coole Idee gerne mehr :) Für mich als Python-Neuling sinnvoll mal so den Wissensstand zu überprüfen.
Sehr hilfreich deine Erklärungen dazu! Danke
Sehr gerne 😊
joan mein Freund wie immer großartiger content! Als hätte ich jetzt was anderes erwartet =)
Tipp zum "Beschleunigungsstreifen" aus Aufgabe 3: x
So kann man es auch sehen
Tolle Idee mit dem Video! Mir als Neuling bringt so ein Video viel, da man nicht nur sein Wissen "Auffrischt" sondern auch viel dazu lernt. Gerne mehr davon!
Es freut mich, dass dir das Video gefallen hat!
Sehr cool! Das erste hat mich gekriegt 😄
Ansonsten hab ich nur den TypeError mit den Dicts als Key falsch :D
sehr nice
Hallo, hauptberuflicher Programmierer hier. Ich liebe die Idee dieses Tests, und konnte mit den Aufgaben meine Gehirnwindungen schön in Schwung bringen. Mir gefällt vor Allem, dass sowohl auf generelle Programmierkonzepte an sich (Scopes/Namensräume in Aufgabe 1, Rangfolgen von Operatoren in Aufgabe 2, usw.) eingegangen wird, also auch auf Python-spezifische Eigenheiten, wie etwa den verkürzten Tausch in Aufgabe 1 oder sogar "for else" weiter hinten. Ich habe einige eigene Schusselfehler bemerkt, und wurde auch ein paar mal ermutigt, Vermutungen zu überprüfen.
Eine Sache, die mich jedoch augenblicklich zurückgefahren ließ, ist die Erläuterung zu Kopien zwischen Aufgaben 5&6. Inhaltlich wird alles richtig erklärt, dass Slicing eine neue Liste erzeugt, während eine einfache Zuweisung nur einen weiteren Verweis auf die ursprüngliche Liste liefert. Das Problem, das ich habe, ist die Benennung als "flache" und "tiefe Kopie", welche in meinen Augen irreführend ist. Programmierer benutzen diese beiden Begriffe auf eine andere Weise, mehr dazu unten. Akkurater für das Beispiel hier wäre hier die Unterscheidung in Kopie und Referenz. Slicing wie in Aufgabe 5 erzeugt eine (echte, aber flache) Kopie, also eine neue Liste, welche mit den Original-Inhalten der ursprünglichen Liste aufgebaut wird. Aufgabe 6 erzeugt hingegen nur eine Referenz auf die ursprüngliche Liste. Es existiert dann nur eine einzige Liste, welche unter den beiden Namen "k" und "l" zu finden ist.
Der Unterschied zwischen flacher und tiefer Kopie kommt erst zum Tragen, wenn man komplexere Strukturen hat, beispielsweise Listen von Listen. Eine flache Kopie in diesem Fall wäre eine neue äußere Liste, welche jedoch als Inhalt Referenzen auf die ursprünglichen inneren Listen besitzt. Greift man auf das erste Element des Originals zu und dann auf das erste Element der flachen Kopie, hat man beide Male nicht nur zwei gleiche Objekte in der Hand, sondern ein und dasselbe Objekt. Eine tiefe Kopie hingegen wird auch die inneren Listen kopieren, sodass das Endergebnis vollkommen losgelöst vom Original existiert.
Eine kleine Aufgabe zu diesem Thema im Stil dieses Tests:
k = [[1,2],[3,4]]
m = k[1:]
m[0].append(5)
m.append(6)
print(k)
Was wird ausgegeben?
A) [[1,2],[3,4]]
B) [[1,2],[3,4,5]]
C) [[1,2],[3,4],6]
D) [[1,2],[3,4,5],6]
PS: Die Reihenfolge von Parametern mit/ohne Standardwert haben andere bereits erwähnt. Pflicht kommt zuerst.
Aufgefallen ist mir das auch, aber so gut erklären hätte ich es nicht können (bzw. auch nicht so genau gewusst) :D
mehr davon bitte
bester man 👌
Aufgabe 1: Ausgabe 2 1 da die Variablen nur lokal in der Methode tauschen geändert werden.
Aufgabe 2: True a>b ist True - dann interessiert der Term nach dem or nicht mehr.
Aufgabe 3: 24 -- x=x 6 --> 12 --> 24 und die Schleife ist fertig.
Cool, das war wirklich mal interessant. Insbesondere weil das viele Sachen sind, die in der Praxis eher selten vorkommen. Ich meine wann sliced man mal ne Liste. Üblicherweise iteriert man drüber und macht dann irgendwas contextabhängig.
In Zertifizierungsprüfungen kommen meistens genau solche theoretischen Eigenheiten dran ;)
Beschleunigungsstreifen fand ich einen coolen Namen!
So kann man es sich leichter merken ;)
Muss ich mir später anschauen, schreib grade auch Klausuren nur in andern Fächern. 😉
Viel Erfolg!
@@Florian.Dalwigk danke
@@L__Master Beeil dich, es ist sehr sehr spannend ! 😁
@@upupaepops6700 glaub ich dir, aber bis zum 09.12.2022 werden noch Bewerbungen fällig. Erst am 12.12. ist Notenschluss für 12/1 also da kann noch viel passieren.
@@L__Master Wünsche dir alles bestens!
4:08 a und b sind einfach lokale Variablen, sobald man ihnen Werte zuweißt, oder?
Genau, a und b sind lokale Variablen
Hattest du schon mal generell was zum XOR-Operator gemacht? Der ist ja von allen bekannten logischen Operatoren der Interessanteste.
Ja, in meinen Videos zum OTP und bei der Einführung in die Aussagenlogik
Das selbe mit der prog sprache C wäre sehr geil :)
Mal schauen :)
Cool mehr solche Python Videos
Danke Dir
Super erklärt am ende hab ich auch alles verstanden, aber ich persönlich finde das video etwas zu lang dafür dass du „nur“ das Quiz gemacht hast
gerne noch einen zweiten teil aber nächstes mal bitte nicht so viele aufgaben am stück aber nicht böse gemeint das Konzept ist cool ;)
Ist auch für den Algorithmus besser :)
cool
Hey kannst du ein Video über die Uni Duisburg machen? Die erleben gerade eine cyberattacke und mussten dementsprechend alles herunterfahren.
Was soll ich da genau thematisieren?
@@Florian.Dalwigk könntest erklären vllt. was getan werden muss bei einer cyberattacke^^ also die Daten sind ja verschlüsselt wie man da handeln muss vllt? Wäre cool, aber klar dir fehlen vermutlich alle genauen Details. Auf deren Webseite kann man sehen was alles befallen wurde das ist trotzdem vllt. Zu wenig.
Das mit dem "and" hab ich komplett verdrängt gehabt, aber ansonsten denk ich war das gut schaffbar :)
Meine Klausurergebnisse:
[korrekt?] [Nummer]: [Antwort] -> [Korrektur]
o 1: 2,1
x 2: False -> True
o 3: 24
o 4: 0
x 5: [False] -> [True, False, True]
o 6: 4
o 7: "1:2" "3:2"
o 8: "#"
o 9: []
x 10: SyntaxError -> TypeError
o 11: 3
o 12: 9
o 13: SyntaxError
o 14: 10
o 15: 2
Sehr gut! :)
Bitte auch in anderen Programmiersprachen wie Java👍🏻
Mal schauen ...
Bei der zweiten würde ich erstmal sagen "setz Klammern!!!!!" :-)
:D
Allgemeine Frage: Ist Python-Code (oder auch Java, C#, JS usw.) schneller wenn man statt mathemaitsche Operationen, Bit-Shifting direkt nutzt ?! Denke da an die CPU
Ja, die Wahl der Operationen kann Einfluss auf die Geschwindigkeit haben.
6. Dürfte meines erachtens keine flache Kopie sein. Die Zuweisung eines Objekt zu einer Variablen mittels = erzeugt eine Referenz auf das Objekt, aber keine Kopie. Shallow Copy würde ein neues Objekt erzeugen.
genau so ist es, der slice bei der vorherigen Aufgabe hat eine flache Kopie erzeugt. Für eine echte tiefe Kopie braucht man copy.deepcopy().
Die Defaultwerte müssen hinten stehen! Zumindest beschwert sich Python bei
def f(a=2,b): pass
aber nicht bei
def f(a,b=3 ): pass
Ja, da habe ich mich versprochen. In meinen Buch erkläre ich es richtig.
Ist es nicht so in python, dass jeder wert, der nicht False oder 0 ist, automatisch True ist?
Somit müsste doch 1010 = True und somit muss Mann nicht 1010 mit 1010 vergleichen, sondern 1 mit 1, oder habe ich hier einen Denkfehler?
(Am Ergebnis würde sich aber dennoch nichts ändern XD)
Erkläre ich in meinem Python-Buch
14/15 ohne spicken, im Kopf
👍
:)