Sie sind auf Seite 1von 6

Zusammenfassung

Mittwoch, 16. November 2022 14:43

Content 00:

Was heißt Data Science:

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.

Unterschied Programming vs Computer Science vs IT:

Programmieren:

a structured way of problem-solving


by expressing the steps of a computation or process
and thereby documenting the process in a formal way.

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:

a field of study comparable to applied mathematics that


asks abstract questions (e.g., "Is something computable at all?"),
develops and analyses algorithms and data structures,
and proves the correctness of a program.

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

Was ist Python:


- Guido van Rossum (war langweilig während Weihachten 1989 und hat als Hobby Projekt gestartet
- Idee: "general purpose scripting language" für "fast prototyping" und sollte auf jedem Betriebsystem laufen
- Python 2 --> Jahr 2000, war Open Source vom Python 2 an --> Programmierer haben mit dem Wissen dazu
beigetragen Python besser zu machen.
- Python 3 --> 2008 --> Sprache für "Big Data" bereit machen
- Python Sprache ist benannt nach Komedy Gruppe "Monty Python"

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.

Python Software Foundation welche die Sprache weiterentwickelt.

Wäre "C" (Programmiersprache) nicht schneller:

- 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.

Wie programmieren lernen:

ABC Rule:

"Always be Coding" --> Man lernt programmieren am besten wenn man täglich oder zumindest regulär Programmiert
("learning by doing")

The Makers Rule:

Manager denken in kleineren Intervallen wie zb in 30 Minuten Intervallen


"Makers"(Macher) denken in großen Intervallen, Solche Leute denken in halben oder ganzen Tagen.

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

In Wahrheit --> Mix aus beiden Methoden um an das Ziel zu kommen.

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

○ / --> comon division operator, Ergebnis ist immer ein float


○ % --> für Rest zu berechnen, man kann auch die letzten Stellen einer Zahl damit herausfinden
789 % 10 --> 9
789 % 100 --> 89
○ ** --> für Hochzahl, Potenz
2 ** 3 --> 8

Operatoren haben keine permanenten Side Effects.


Z.B: "12+3" wird nicht im Arbeitsspeicher gespeichert.

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

Objects vs Types vs Values. Typen --> String,Float Int

Identity/Memory Location:

Wo ein Object abgespeichert ist im Arbeitsspeicher. --> id(object)

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.

Value/ (Semantic) Meaning:

"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:

For numbers in numbers :


… --> hier braucht man ein ":" und einen Abstand im For each loop --> Das ist die Regel für die
Programmiersprache

Errors:
Siehe Session 03 --> Alles können müssen + wie man den Fehler behebt.
Wichtig!!

Variablen vs Names vs Identifiers vs References

Variablen werden über das asssigment statement erstellt ("=")


--> Ist kein Operator weil es einen Nebeneffekt hat auf den Speicher --> Siehe Skizze. --> Es wird Objekt
erstellt in RAM.

Bei Liste kann man auch einen negativen Index indexieren, dann wird von hinten angefangen.

Expressions:

Expressions haben keine Side Effekte

Wiederholen Seite 3
Expressions haben keine Side Effekte
Statements dann wenn es permanente Side Effekte gibt

Logical vs Physical Lines:

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:

Header= erste Zeile wo funktion mit "def" definiert wird.


Body ist der Inhalt von Funktion, alles nach der ersten Zeile.

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:

Es gibt globale und lokale 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:

Assert --> "Prüfen"

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.

Vordefinierte Variablen die in eine Funktion gegeben werden.


Können mit in die Funktion gegeben werden, müssen aber nicht da sie vordefiniert sind.

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:

Try and Except Statement noch wichtig zu lernen

Wiederholen Seite 6

Das könnte Ihnen auch gefallen