Beruflich Dokumente
Kultur Dokumente
Content 00:
Most serious definitions describe the field as being multi-disciplinary integrating scientific methods, algorithms, and
systems thinking to extract knowledge from structured and unstructured data, and also emphasize the importance
of domain knowledge.
Programmieren:
Programming is always concrete and based on a particular case. It exhibits elements of an art or a craft as we hear
programmers call code "beautiful" or "ugly" or talk about the "expressive" power of an application.
Computer Science:
In a sense, a computer scientist does not need to know a programming language to work, and many computer scientists
only know how to produce "ugly" looking code in the eyes of professional programmers.
IT:
Often, it has something to do with hardware or physical devices, both of which are out of scope for programmers and
computer scientists. Sometimes, it refers to a support function within a company
Zusammenfassung: "General Purpose" Programmiersprache, mit der mal schnell Programmieren kann und ist einfach zu
lesen. Läuft auf jeder Maschine (Betriebssystem). Und man kann mit "Big Data" arbeiten.
Open Source:
Vorteile: Genaue Einsicht von Programmcode, Man kann nachvollziehen ob Code sicher ist und was genau das
Programm macht.
- Bei C muss man die komplette "Business Logik" aufbauen und den Speicher vom Computer managen.
- Python dahingegen managed den Speicher schon automatisch. --> Python ist um einiges schneller bei der
eigentlichen Entwicklung weil man keine Zeit in das managen vom Speicher steckt (weil automatisch)
- C ist schneller als Pyton wenn man nur die Ausführzeit vom Programm bedenkt, aber mit der Entwicklungszeit ist
Python schneller.
- Es gibt in Python viele verschiede Bibliotheken die C benutzen, die dann eigentlich so schnell wie C arbeiten.
ABC Rule:
"Always be Coding" --> Man lernt programmieren am besten wenn man täglich oder zumindest regulär Programmiert
("learning by doing")
Phase Iteration:
Methode 1: Problem aussuchen, in kleinere Probleme aufbrechen und die dann nacheinander lösen --> mit Ziel im Auge
Methode 2: Mit Büchern,Blogs,Tutorials --> Die dann von vorne bis ende durcharbeiten
Session 02
Content 00:
• Arithmetische Operatoren:
○ unäre Operatoren (negation), operieren mit der unmittelbar folgenden Zahl
○ Binäre Operatoren (addition), verarbeiten die beiden Zahlen um sie herum
○ Keine dauerhafte Nebenwirkungen im Speicher des PCs
○ Code erzeugt zwar neue Zahlen im Speicher (z.B. 77 + 13 ergibt 90), jedoch werden diese sofort "vergessen", da sie nicht in einer Variablen gespeichert werden wie numbers oder avarage
○ // --> floor division operator, rundet immer auf eine ganze Zahl, wird auch integer division operator genannt. Die Dezimalstelle wird nicht abgeschnitten, sondern eher gegen minus unendlich aufgerundet. Wen Zahl ist negativ wird’s auf minus unendlich
abgerundet. z.B: -5//2 = -3
Methode divmod():
Wiederholen Seite 1
Operator Overloading:
Operatoren können sich verschieden Artig verhalten --> Man kann zwei Strings addieren zb. Verhält sich anders als wenn man zwei Integer addiert
Identity/Memory Location:
Bsp:
a = 12
Id(a)
--> a == b --> Hier wird gecheckt ob der WERT des Objektes gleich ist wie der andere.
--> B =
12
Wiederholen Seite 2
Die Funktion: is.integer() macht bei INT's keinen Sinn da wir da schon wissen, dass es eine INT ist.
"zweiundvierzig" --> Python sieht nur den Wert aus Nullen und Einsen.
Wir sehen die semantische Bedeutung von dem String --> Wir wissen, dass damit "42" gemeint ist, der
Computer nicht.
A = "Zweiundvierzig"
A + A = "ZweiundvierzigZweiundvierzig"
Wir wissen aber --> Mit Zweiundvierzig ist 42 gemeint, also wir wissen, dass 84 rauskommt.
Formal Language:
Sprache hat ihre eigenen Regeln --> Das ist die Syntax.
Bsp bei For Loop:
Errors:
Siehe Session 03 --> Alles können müssen + wie man den Fehler behebt.
Wichtig!!
Bei Liste kann man auch einen negativen Index indexieren, dann wird von hinten angefangen.
Expressions:
Wiederholen Seite 3
Expressions haben keine Side Effekte
Statements dann wenn es permanente Side Effekte gibt
Physical => Wie viel Zeilen Code wir SEHEN. Also auch wirklich PHSYSICH da ist
Logical => Wie viel Zeilen ausgeführt werden, getrennt durch verschiedene Operationen.
Compound Statement:
Wenn da ein Doppelpunkt steht, alles was darunter steht exisitert mit der logischen Zeile.
Built In functions:
Built In Functions sind schon im speicher abgespeichert, wir müssen sie nicht importieren.
Built in functions haben eine ID, da sie im Speicher gespeichert sind. Z.b "id(sum)"
Callable --> Nur methoden sind aufrufbar. Listen wäre nicht aufrufbar. Callable sind alle Sachen die mit "()" aufgerufen werden können. Funktionen wie "sum()" oder "function()" wären callable.
Constructors:
Wandelt Objekt in anderes Objekt um, man gibt dafür den Typ an Objekt an den mach möchte. Bsp: int(9.9), int("7")
Round() --> rundet mathematisch, bis auf 0.5 --> bei 0.5 immer abwechseld auf und ab. --> Grund dafür ist, dass der Durschnitt "fair" ist. Bei round auf semantische Fehler achten.
Funktion:
Warum in Funktion nicht print sondern return --> print gibt einfach nur etwas aus, es wird kein Wert zurück geben.
Docstring --> Wird durch 3 Gänsefüchsen am anfang und ende definiert. Beschreibung von allgmeinen Objekten. Dokumentation. Kann mit "help()" aufgerufen werden oder mit "?" hinter funktion.
Function Calls:
Once defined, we may call a function with the call operator `()` as often as we wish. The formal parameters are then filled in by **passing** *expressions* (e.g., literals or variables) as **arguments** to the
function within the parentheses.
Scoping Rules:
Local Scope: variable in funktion definiert --> existiert außerhalb von funktion nicht! Man kann sie nur innerhalb der funktion aufrufen.
Global Scope: Sind Gloabl definiert, man kann überall darauf zugreifen.
Wenn zwei variablen die gleich heißen, eine innerhalb eine außerhalb der funktion --> wenn variable aufgerufen wird in funktion, wird die innerhalb funktion prioritisiert!
Wenn eine Variable nicht innerhalb einer Funktion exisitiert, sucht python außerhalb der funktion.
Shadowing:
Die innere Variable wirft einen Schatten auf die äußere, und deshalb sieht die innere die äußere variable
nicht. Siehe Beispiel:
Wiederholen Seite 4
Positional vs Keyword Arguments:
Positional Arguments:
Position ist wichtig, also in welcher Reihenfolge die Argumente in die funktion gepassed werden:
Keyword Arguments:
Man spricht mit Bsp "Numbers=Numbers" nicht die Position an sondern den Namen des Arguments das in die Funktion reingelesen wird.
Modularization
Modularization is the technique of splitting a large programming task into smaller, separate, and manageable subtasks.
Like most modern programming languages, Python is a modular programming language. Python scripts are modularized through functions, modules, and packages
Default Arguments.
Wiederholen Seite 5
Keyword only arguments:
Wird mit einem "*" aufgerufen. Der nutzer der Funktion muss Scalar mit dem Namen aufrufen, nicht mit nur einer Variable.
Anonymous Functions:
Wiederholen Seite 6