add c and py
This commit is contained in:
parent
7efe0fabcf
commit
38cbcdf611
@ -207,6 +207,9 @@ int main(){
|
|||||||
```
|
```
|
||||||
]
|
]
|
||||||
|
|
||||||
|
=== String
|
||||||
|
Endung auf `\0`
|
||||||
|
|
||||||
=== enum
|
=== enum
|
||||||
|
|
||||||
=== struct
|
=== struct
|
||||||
|
|||||||
@ -389,6 +389,49 @@ func_with_ref_param(x);
|
|||||||
)
|
)
|
||||||
Zudem gibt es bei Referenzen keine null pointer und es können keine Referenzen auf Referenzen gemacht werden.
|
Zudem gibt es bei Referenzen keine null pointer und es können keine Referenzen auf Referenzen gemacht werden.
|
||||||
|
|
||||||
|
=== Try
|
||||||
|
Falls es userinputs gibt oder man nicht weiss ob es geht kann man mit der Try funktion sachen probieren und bei einem fehlschlag crasht das programm nicht.
|
||||||
|
Beispiel mit vector: Der user will die 8 pos eines vektors welcher nur 3 Elemente hat.
|
||||||
|
#table(columns: 1fr, [```cpp
|
||||||
|
#include <stdexcept>
|
||||||
|
int main(){
|
||||||
|
std::vector<int> v{0, 1, 2};
|
||||||
|
// so wurde das programm auf der folgenden Zeile craschen
|
||||||
|
// std::cout << v.at(8) << std::endl;
|
||||||
|
|
||||||
|
try {
|
||||||
|
std::cout << v.at(8) << std::endl;
|
||||||
|
} catch (std::exception &ex){
|
||||||
|
// gibt eine fehlermeldung zurück und geht weiter
|
||||||
|
std::cout << "Error: " << ex.what() << std::endl;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
```]
|
||||||
|
)
|
||||||
|
Beispiel mit einer Division durch Null:
|
||||||
|
#table(columns: 1fr, [```cpp
|
||||||
|
#include <stdexcept>
|
||||||
|
int divide(int dividend, int divisor){
|
||||||
|
if (divisor == 0){
|
||||||
|
throw std::runtime_error("Divide by zero");
|
||||||
|
}
|
||||||
|
return dividend / divisor;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(){
|
||||||
|
try {
|
||||||
|
std::cout << "Trying to divide by zero ..." << std::endl;
|
||||||
|
std::cout << divide(4, 0) << std::endl;
|
||||||
|
|
||||||
|
} catch (std::exception &ex){
|
||||||
|
std::cout << "Error: " << ex.what() << std::endl;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
```]
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
=== testing
|
=== testing
|
||||||
```cpp
|
```cpp
|
||||||
|
|||||||
@ -38,7 +38,7 @@ fill: (x, y) => if y == 0 {gray.lighten(40%)},
|
|||||||
fill: (x, y) => if y == 0 {gray.lighten(40%)},
|
fill: (x, y) => if y == 0 {gray.lighten(40%)},
|
||||||
[Ausdruck], [Name], [Beispiel], [Ergebnis], [Beschreibung],
|
[Ausdruck], [Name], [Beispiel], [Ergebnis], [Beschreibung],
|
||||||
[`%`], [Modulo], [```py 7 % 3 ```], [1], [Gibt den Rest einer Division aus],
|
[`%`], [Modulo], [```py 7 % 3 ```], [1], [Gibt den Rest einer Division aus],
|
||||||
[`//`], [Floor division], [```py 7 // 2 ```], [2], [Ergebnis wird immer zur nächsten kleineren Ganzzahl abgerundet],
|
[`//`], [Floor division], [```py 7 // 3 ```], [2], [Ergebnis wird immer zur nächsten kleineren Ganzzahl abgerundet],
|
||||||
[`**`], [Hochrechnen], [```py 2**3 ```], [8], [Nichts anderes als: $2^3$],
|
[`**`], [Hochrechnen], [```py 2**3 ```], [8], [Nichts anderes als: $2^3$],
|
||||||
)
|
)
|
||||||
=== Listen
|
=== Listen
|
||||||
@ -92,7 +92,7 @@ s1 + s2 ```], ["HalloWelt"],
|
|||||||
[Strings Zusammensetzen mit join], [```py
|
[Strings Zusammensetzen mit join], [```py
|
||||||
s1 = "Hallo"
|
s1 = "Hallo"
|
||||||
s2 = "Welt"
|
s2 = "Welt"
|
||||||
" ".join ([s1, s2]) ```], ["Hallo Welt"],
|
" ".join([s1, s2]) ```], ["Hallo Welt"],
|
||||||
)
|
)
|
||||||
|
|
||||||
*Methoden*
|
*Methoden*
|
||||||
@ -180,7 +180,7 @@ Ein Dictionary ist wie ein Wörterbuch mit einem "Key" und einer dazugehörigen
|
|||||||
fill: (x, y) => if y == 0 {gray.lighten(40%)},
|
fill: (x, y) => if y == 0 {gray.lighten(40%)},
|
||||||
[Was], [Code], [ausgabe],
|
[Was], [Code], [ausgabe],
|
||||||
[Liefert den value zum zugehörigen key], [```py d1.get("a") ```], [`10`],
|
[Liefert den value zum zugehörigen key], [```py d1.get("a") ```], [`10`],
|
||||||
[Löscht den value zum zugehörigen key], [```py d1.pop() ```], [`[10, 27, 12]`],
|
[Löscht den key & value zum zugehörigen key], [```py d1.pop("a") ```], [`[10, 27, 12]`],
|
||||||
[Liefert alle values eines Dictionaries als Liste], [```py d1.values() ```], [`[10, 27, 12]`],
|
[Liefert alle values eines Dictionaries als Liste], [```py d1.values() ```], [`[10, 27, 12]`],
|
||||||
[Liefert alle keys eines dictionaries als Liste], [```py d1.keys() ```], [`["a", "b", "c"]`],
|
[Liefert alle keys eines dictionaries als Liste], [```py d1.keys() ```], [`["a", "b", "c"]`],
|
||||||
[Liefert alle key/value-Paare eines Dictionary als Tuple], [```py d1.items() ```], [`[("a", 10), ("b", 27), ("c", 12)]`],
|
[Liefert alle key/value-Paare eines Dictionary als Tuple], [```py d1.items() ```], [`[("a", 10), ("b", 27), ("c", 12)]`],
|
||||||
@ -217,6 +217,110 @@ print(f"Balance: CHF {balance:.2f}") # Balance: CHF 9876.94 -> Ausgabe auf 2 St
|
|||||||
```])
|
```])
|
||||||
|
|
||||||
=== Entscheidungen
|
=== Entscheidungen
|
||||||
|
==== if
|
||||||
|
Das `if` in Python kann einzel verwendet werden oder in kombination mit `elif` oder `else`.
|
||||||
|
#table(columns: 1fr, [```py
|
||||||
|
number = 15
|
||||||
|
if number > 0:
|
||||||
|
print("The number is positive")
|
||||||
|
```])
|
||||||
|
#table(columns: 1fr, [```py
|
||||||
|
a = 200
|
||||||
|
b = 33
|
||||||
|
if b > a:
|
||||||
|
print("b is greater than a")
|
||||||
|
elif a == b:
|
||||||
|
print("a and b are equal")
|
||||||
|
else:
|
||||||
|
print("a is greater than b")
|
||||||
|
```])
|
||||||
|
|
||||||
|
==== march (switch case)
|
||||||
|
Mit dem march hat man in Python eine switch case option.
|
||||||
|
- `_`: der Underline ist der default parameter wenn keine bedingung erfühlt ist.
|
||||||
|
#table(columns: 1fr, [```py
|
||||||
|
day = 4
|
||||||
|
match day:
|
||||||
|
case 6:
|
||||||
|
print("Today is Saturday")
|
||||||
|
case 7:
|
||||||
|
print("Today is Sunday")
|
||||||
|
case _:
|
||||||
|
print("Looking forward to the Weekend")
|
||||||
|
```])
|
||||||
|
- `|`: mittels pipe können or verknüpfungen gemacht werden.
|
||||||
|
#table(columns: 1fr, [```py
|
||||||
|
day = 4
|
||||||
|
match day:
|
||||||
|
case 1 | 2 | 3 | 4 | 5:
|
||||||
|
print("Today is a weekday")
|
||||||
|
case 6 | 7:
|
||||||
|
print("I love weekends!")```])
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
=== Schleifen
|
||||||
|
==== for-loop
|
||||||
|
Alle Items werden ausgeprintet.
|
||||||
|
#table(columns: 1fr, [```py
|
||||||
|
for item in ["itemA" , "itemB" , "itemC"]:
|
||||||
|
print(item)
|
||||||
|
```])
|
||||||
|
|
||||||
|
==== while
|
||||||
|
Schleifen werden verwendet wen nicht bekannt ist wie lange es dauert bis die bedinung erfühlt ist. \
|
||||||
|
- ```py continue ```: mit dem continue statement springt die schleife wieder an den anfang und in dem fall wird 3 nicht geprintet.
|
||||||
|
- ```py break ```: mit dem break statement wird die schleife vorzeitig verlassen.
|
||||||
|
#table(columns: 1fr, [```py
|
||||||
|
i = 1
|
||||||
|
while i < 6:
|
||||||
|
if i == 3:
|
||||||
|
continue
|
||||||
|
if i == 5:
|
||||||
|
break
|
||||||
|
i += 1
|
||||||
|
print(i)
|
||||||
|
```])
|
||||||
|
|
||||||
|
|
||||||
|
=== range() (Exkurs)
|
||||||
|
Mit der ```py range() ``` funktion können Reihen geformt werden. Die Funktion hat drei parameter `range(start, stop, step)`
|
||||||
|
- start: (Optional). Ein Intiger Wert, welcher die Startposition festlegt. (default: 0)
|
||||||
|
- stop: (Required). Ein Intiger Wert, welcher die Endposition festlegt.
|
||||||
|
- step: (Optional). Ein Intiger Wert, welcher die Schrittweite festlegt. Kann auch negativ sein. (default: 1)
|
||||||
|
#table(columns: (1fr, 1fr),
|
||||||
|
[```py
|
||||||
|
for i in range(5):
|
||||||
|
print(i)
|
||||||
|
```], [`0, 1, 2, 3, 4`],
|
||||||
|
[```py
|
||||||
|
for i in range(0, 5, 1):
|
||||||
|
print(i)
|
||||||
|
```], [`0, 1, 2, 3, 4`],
|
||||||
|
[```py
|
||||||
|
for i in range(0, 5, 2):
|
||||||
|
print(i)
|
||||||
|
```], [`0, 2, 4`],
|
||||||
|
[```py
|
||||||
|
for i in range(10, 5, -1):
|
||||||
|
print(i)
|
||||||
|
```], [`10, 9, 8, 7, 6`],
|
||||||
|
)
|
||||||
|
|
||||||
|
=== Funktionen
|
||||||
|
Mit einer Funktion können wir code wiederholen ohne ihn mehrmals zu schreiben.
|
||||||
|
#table(columns: 1fr, [```py
|
||||||
|
def funktionsname(a, b, c=3):
|
||||||
|
# code
|
||||||
|
return something
|
||||||
|
```])
|
||||||
|
Erklärung:
|
||||||
|
- ```py def ```: Schlüsselwort zum `definieren` einer Funktion.
|
||||||
|
- ```py funktionsname ```: Name mit der die Funktion später aufgerufen werden soll.
|
||||||
|
- ```py (a, b, c=3) ```: Argumente / Parameter welche der funktion mitgegeben werden. Wenn eine Variable keinen wert hat muss der Wert beim funktionsaufruf mitgegeben werden. Ist wie z.b. bei c=3 mittels gleich einen Wert, liste, etc. als default Wert definiert so ist der Parameter optional und muss nicht mitgegeben werden, dann wir einfach der default wert verwendet.
|
||||||
|
- ```py # code ```: Hier kommt der code der Funktion hin.
|
||||||
|
- ```py return something ```: Falls etwas zurückgegeben werden möchte kann dies mitels return gemcht werden. Es ist auch möglich mehere variabeln zurückzugeben z.b. ```py f, p = return x, y ```. Falls nicht zurückgegeben werden möchte kann auf dass return verzichtet werden.
|
||||||
|
Optionale Parameter kommen immer am schluss!
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user