add c and py
This commit is contained in:
parent
7efe0fabcf
commit
38cbcdf611
@ -207,6 +207,9 @@ int main(){
|
||||
```
|
||||
]
|
||||
|
||||
=== String
|
||||
Endung auf `\0`
|
||||
|
||||
=== enum
|
||||
|
||||
=== 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.
|
||||
|
||||
=== 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
|
||||
```cpp
|
||||
|
||||
@ -38,7 +38,7 @@ fill: (x, y) => if y == 0 {gray.lighten(40%)},
|
||||
fill: (x, y) => if y == 0 {gray.lighten(40%)},
|
||||
[Ausdruck], [Name], [Beispiel], [Ergebnis], [Beschreibung],
|
||||
[`%`], [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$],
|
||||
)
|
||||
=== Listen
|
||||
@ -92,7 +92,7 @@ s1 + s2 ```], ["HalloWelt"],
|
||||
[Strings Zusammensetzen mit join], [```py
|
||||
s1 = "Hallo"
|
||||
s2 = "Welt"
|
||||
" ".join ([s1, s2]) ```], ["Hallo Welt"],
|
||||
" ".join([s1, s2]) ```], ["Hallo Welt"],
|
||||
)
|
||||
|
||||
*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%)},
|
||||
[Was], [Code], [ausgabe],
|
||||
[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 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)]`],
|
||||
@ -217,6 +217,110 @@ print(f"Balance: CHF {balance:.2f}") # Balance: CHF 9876.94 -> Ausgabe auf 2 St
|
||||
```])
|
||||
|
||||
=== 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