Informatik Flashcards
Was ist die Syntax einer Sprache?
grammatikalische Regeln, denen eine Sprache folgt
Welche Elemente hat die Python-Syntax?
Literalte, Bezeichner, Schlüsselworte, Operatoren, Blöcke, Kommentare
Was macht ein Bezeichner?
bezeichnet Variablen, Funktionen oder Datentypen. Sind Platzhalter für Dinge, die einen Wert haben können; Beginnen mit Buchstaben und stehen nicht in Anführungszeichen; Bsp. def bezeichner_name; bezeichner = 1
Was macht ein Schlüsselwort?
haben eigene, unveränderliche Bedeutung und beginnen mit Buchstaben;
and, as, assert, async, break, continue, class, def, del, elif, else, if, false, for, from, in, is, not, or, ….
Was macht ein Operator?
Verknüpft mehrere Ausdrücke zu einem neuen Ausdruck, sind Sonderzeichenketten oder Schlüsselworte; Bsp. () [] {} + - * / // < > => >= == != if else is not in
Was ist ein Block?
Zusammenhängender Quelltext, der in Python druck einrücken und : gekennzeichnet wird
Was ist ein Kommentar?
Beschreibt Code, beginnt mit # und Endet am Ende der Zeile
Was ist ein Ausdruck?
Ein Ausdruck repräsentiert einen Wert, zu dem er Auswertet, er kann aus einem Literal, dem Bezeichner einer Variablen, einem Funktionsaufruf oder einem mit Operatoren zusammengesetzten Ausruck bestehen
Was gibt es für verschiedene Operatoren und was machen diese?
unärer Operator: haben einen Operanden -a
binärer Operator: verknüpfen zwei Operanden a+b
ternärer Operator: verknüpfen drei Operanden if..else..
Außerdem gibt es einen prefix, infix und postfix - Operator (vorne, mitte, hinten)
z.B. a+b binärer Infix-Operator; -a unärer Präfix-Operator
Was bedeutet Operatorenpräzedenz?
Operatoren haben Präzedenzreihenfolge, in einer Reihe z.B. linksassoziativ; Veränderbar mit ()
Was sind Arithmetische Operatoren?
+ - * / % ** ~ //
Was sind Bitoperatoren?
& (bitweises und) | (bitweises oder)
Was sind Bitoperatoren?
& (bitweises und) | (bitweises oder) ^ (bitweises entweder oder), bit-shift («_space;»)
Zahl in bitschreibweise (2^3 + 2^2 + 2^1 + 2^0) = 15
1 1 1 0 = 14
0 1 0 1 = 5
—————————————–
14&5 0 1 0 0 = 4
14|5 1 1 1 1 = 15
14«1 1 1 1 0 0 = 28
14»1 0 1 1 1 = 7
Was sind Vegleichsoperatoren?
Vergleiche, einschließlich Test auf Inhalt und Identität:
in, not in, is, is not, , >=, !=, == -> Bsp. 3>10 -> false
Was sind Boolsche Operatoren?
not, and, or true and false -> false; not false = true; true or false = true
Konditionalausdrücke sind was?
Zusammengesetzte Operatoren und Zeichenketten:
“Apple” if 3<4 else “Banana” -> “Apple”, weil 3<4
Ausdrücke mit Zeichenketten? Was für Unterschiede?
Konkatenation: “Hallo” + “Welt” -> “Hallo Welt”
Repetition: “Na” * 6 -> “NaNaNaNaNaNa”
Was ist die Zuweisung?
Ist ein Ausdruck, der einer Variablen mit dem Namen Bezeichner den Wert des Ausdrucks zuweist; Kann später im Programm überschrieben werden
a = 1
Modifizierte Zuweisung: a+=2, a-=2 a//=2, a*=2
Was ist das Imperative Programmierparadigma?
Programm besteht aus Liste von Answeisungen, die nacheinander ausgeführt werden können; Anweisungen werden durch Zeilenumbrüche getrennt, es seidenn durch \ über mehrere Zeilen
Was ist eine Funktion? Welche Bestandteile?
Mehrere benötigte Anweisungen werden zu einer Prozedur zusammengefasst und mit Bezeichner benannt -> Funktion
Eine Funktion muss in dem Moment definiert sein, in dem sie aufgerufen wird, kann aber überschrieben werden
Funktionsaufruf: print(), funktion(Parameter)
Funktionsargumente: Argumente, die der Funktion beim Aufruf übergeben werden
Funktionsdefinition: def funktion(Parameter):
Leere Funktionen müssen mit pass gekennzeichnet werden, sonst gibt es einen Fehler (pass tut einfach nichts)
Funktionen können einen return-Wert besitzen (nach return wird Funktion verlassen)
Was sind optionale Parameter einer Funktion?
Verpflichtende Argumente: def funktion(name, nachname):
Beide Argumente sind beim Aufruf verpflichtend
Optionale Argumente: def funktion(name, nachname=”mahler”):
Wenn bei nachname nun nichts eingegeben wird, wird default-Wert “mahler” gesetzt, name ist verpflichtend; wird nachname übergeben, wird “mahler” überschrieben
Details zur print()-Funktion?
print(“Hallo”, “du”, “Idiot”, sep=”-“, end=”!”)
-> Hallo-du-Idiot!
Was macht die Input-Funktion?
wert=input(“Sag dein Name!”)
-> Eingabe des wert
Was für Kontrollstrukturen gibt es?
if, if else, elif, for, while
Was macht die if-Kontrollstruktur?
Ausführung eines Codes findet nur statt, wenn if-Bedingung erfüllt wurde
if a>b:
Was macht die if-Kontrollstruktur?
Ausführung eines Codes findet nur statt, wenn if-Bedingung erfüllt wurde
def max(a,b): if a>b: return a return b
Gibt in Funktion a zurück, wenn a>b, ansonsten als default b, kann auch mit else geschrieben werden:
def max(a,b): if a>b: return a else: return b
Zusätzlich kann elif (else..if) benutzt werden if…elif…elif…else
Wie funktioniert eine for-Schleife?
for-Schleife führt Codeblock mehrfach aus und setzt dabei nacheinander Werte für die Schleifenvariable ein:
for wert in 100, 200, 500, 1000:
print(wert)
-> 100 200 500 1000 (untereinander)
break verlässt for-Schleife (Wenn ein Wert beim iterieren “gefunden” wurde)
continue springt zum Beginn des Schleifenkörpers zurück setzt nächsten Wert ein (Abbruch eines Durchgangs, Start neuer Durchgang)
for wert in range(5):
print(wert)
-> 0 1 2 3 4
for wert in range(3,7):
print(wert)
-> 3 4 5 6
for wert in range(3,8,2):
print(wert)
-> 3 5 7
Was macht for..else?
Führt else genau dann aus, wenn Schleife NICHT durch ein break verlassen wurde
Wie funktioniert die while-Schleife?
Führt Schleifenkörper so lange aus, bis Schleifenbedingung erfüllt ist
a=0
while a<3:
a+=1
-> geht durch while-Schleife, bis a=3, dann weiter
while…else:
a=4
while a<3:
a+=1
else:
print(“a war schon immer größer als 3)
-> geht direkt in else, da while einmal zu FALSE ausgewertet wurde
Wie funktioniert die while-Schleife?
Führt Schleifenkörper so lange aus, bis Schleifenbedingung erfüllt ist
while
Funktionen von Processing?
Initialisieren: def setup(): -> size()
Draw: def draw():
cicle(), text(), line(), rect()
stroke(), strokeWeight(), fill()
mousePressed(), mouseReleased(), mouseX(), mouseY(), hour(), minute(), second()
Was ist ein Algorithmus?
ein Schema, mit dem wir den Lösungsweg für eine Problemstellung so aufschreiben, dass man Code schreiben kann, mit dem die Lösung berechnet werden kann
Was ist Iteration?
Manche Probleme lassen sich durch wiederholte gleichartige Berechnungen lösen. Eine einzelne Wiederholung berechnet man als Iteration, in Python while und for für Iterationen.
def fak_iterativ(n): akkum = 1 for i in range(1,n+1): akkum = akkum * i return akkum
Was ist Rekursion?
Eine Funktion heißt rekursiv, wenn sie sich selbst aufruft, auch wenn das über mehrere Zwischenaufrufe von Funktionen passiert, die sich gegenseitig aufrufen
def fak_rekursiv(n): if n < 2: return 1 return n * fak_rekursiv(n-1)
Die Anzahl der Selbstaufrufe können gezählt werden und werden als Rekursionstiefe bezeichnet, Python bricht ab einer bestimmten Rekursionstiefe ab
Was ist Information?
Digitaler Speicher besteht aus Bits, die nur zwei Zustände unterscheiden können. (z.B. 0/1, wahr/falsch,..) Meist werden mehrere Bits zusammengefasst und als logische Einheit von Information betrachtet; n Bit Information unterscheidet dabei 2^n verschiedene Zuständen; Wenn man zwischen N verschiedenen Zuständen unterscheiden kann, besitzt man log2N an Information
Was ist ein Datentyp?
Interpretation der Zustände entspricht dem Datentyp. Damit Operationen auf Werten überhaupt möglich sind, muss Python wissen, welchen Typs die als Bits im Speicher abgelegten Daten haben. Durch type() kann man sich den Typ ausgeben lassen.
Was ist statische bzw dynamische Typisierung?
Unterschied zwischen statisch typisierten Programmiersprachen und dynamisch typisierten Sprachen. Statisch bedeutet, dass bereits zu dem Zeitpunkt, zu dem das Programm geschrieben ist, der Datentyp jeder Variable, jedes Ausdrucks bekannt sein kann. Dynamisch typisiert bedeutet, dass erst bei der Ausführung des Codes der Datentyp einer Variable feststeht. Python ist duck typed, erst wenn bei der Ausführung erkannt wird, dass eine Operation nicht möglich ist, gibt es einen Fehler.
Was ist ein Type hint?
Es gibt optionale type hints, die in Funktion bestimmten Datentyp erwarten.
def summe( a : int, b: int) -> int: return a + b
Was ist der Bool´sche Datentyp?
Kennt nur Werte true und false; in Bedingungstests von if, while, sowie als Operand von or, and und not gibt es auch die Interpretation von anderen Typen als wahr und falsch; True entspricht allen ganzen Zahlen außer 0, False 0 und umgekehrt.
A and B entspricht B if A else A
A or B entspricht A if A else B`
Bsp. 3 and „Banana“ -> „Banana“, da Banana trueisch
„Banana“ and not „Cat“ or „Apple“ -> „Apple“
False + 0 -> 0, True + 0 -> 1
Was ist der None-Type?
Wert None vom Typ NoneType, der signalisiert, dass ein Ausdruck keinen eigentlichen Wert hat.
Was sind ganze Zahlen (Type int)
Ganze Zahlen haben den Typ int, der nicht durch bit begrenzt ist, sondern wächst bis zum Füllen des Hauptspeichers an; die Division von zwei ganzen Zahlen liefert einen float-Wert zurück. Es seidenn man benutzt //
Was sind Fließkommazahlen (Type float)?
Entsprechen dem Typ float; dargestellt mit . und nicht , 0.0 ist false, alles andere true
Was sind komplexe Fließkommazahlen (Type complex)?
Basieren auf float, implizieren immaginäre Zahlen
1j*1j = (-1+0j) = -1
bei gemischten Operationen mit int oder float findet ein automatischer Cast auf complex statt
Was sind Zeichenketten (Type str)?
Sind Unicode-basiert, erst bei Lesen und Schreiben von außen spielt das Encoding eine Rolle
“String” oder ‘String’
Mehrzeilige String-Literale können Zeilenumbrüche enthalten """Ein String""" '''Ein String''' -> 3x Anführungszeichen
Möchte man “ printen: print(“ ‘ “) oder print(‘ “ ‘)
Was gibt es für Sonderzeichen in einem String?
print(“C:\DOS>”) -> C:\DOS> -> \
print(“A\nha!”) -> A
ha! -> \n
print(“Eins\t1) -> Eins 1 ->\n (Tab)
wird vor den String ein r geschrieben, werden Sonderzeichen ignoriert print(r”1\n2) -> 1n\2
Wie funktioniert Typumwandlung?
int(3.9) -> 3
int(“3”) -> 3
int(float(“3.9”))->3 !!hier muss “3.9” von str erst in float, dann in int umgewandelt werden