add python
This commit is contained in:
parent
e9242839f7
commit
7efe0fabcf
@ -1,3 +1,6 @@
|
||||
#import "@preview/cetz:0.4.1"
|
||||
#import "@preview/cetz-venn:0.1.4"
|
||||
|
||||
== Python Wahlmodul
|
||||
=== Virtuall Envirements
|
||||
Python Umgebungen (Environments) sind isolierte Verzeichnisse, die eine spezifische Python-Version und Projektabhängigkeiten (Pakete) enthalten. Ihr Zweck ist die Trennung der Projekte voneinander, um Konflikte zu vermeiden und die Reproduzierbarkeit sicherzustellen. \
|
||||
@ -104,6 +107,118 @@ s2 = "Welt"
|
||||
[Zeichen ersetzen], [```py s.replace("a", "A") ```], ["dAs ist ein lAnger String"],
|
||||
)
|
||||
|
||||
=== Set
|
||||
In einem Set kann im Vergleichen zur Liste jedes Element nur einmal existieren und ist sommit *einmalig!*
|
||||
#table(columns: (1fr, 1fr, 1fr),
|
||||
[Set erstellen], [```py s = {"a", "b", "c", "a"} ```], [Das letzte "a" wird nicht hinzugefügt da es bereits im Set ist.],
|
||||
[Liste in Set umwandeln], [```py s = set(["a", "b", "c", "a"]) ```], [],
|
||||
[String im Set], [```py s = set("Python") ```], [Jeder buchstabe wird einzeln gespeicher. \ `s = {'n’, ’y’, ’p’, ’h’, ’o’, ’t’}`],
|
||||
[Set erweitern], [```py s.add(5) ```], [],
|
||||
[Element aus Set löschen], [```py s.remove(12) ```], [Gibt einen Error aus wenn das zu entfernende Element nicht im Set ist.],
|
||||
[Element aus Set löschen ohne Error], [```py s.discard(12) ```], [Gibt keinen Error aus wenn das zu entfernende Element nicht im Set ist (Programm geht weiter).],
|
||||
)
|
||||
*Mathe* \
|
||||
Mit den Set's können Mengen operationen gemacht werden. Hier Beispiele mit "A" und "B".
|
||||
#table(columns: 1fr, [```py
|
||||
A = {"10", 120, "a"}
|
||||
B = {120, 5, 10}
|
||||
```])
|
||||
|
||||
#let op_scale = 0.6
|
||||
#table(columns: (1fr, 1fr, 0.5fr), stroke: (x: none), align: horizon,
|
||||
[Vereinigung \ $A union B$ \ ```py print(A | B) ```], [`{5, 120, "10", 10, "a"}`], [
|
||||
#cetz.canvas({
|
||||
cetz.draw.scale(op_scale)
|
||||
cetz-venn.venn2(
|
||||
name: "Vereinigung",
|
||||
a-fill: yellow.transparentize(40%),
|
||||
b-fill: yellow.transparentize(40%),
|
||||
ab-fill: yellow.transparentize(40%),
|
||||
)
|
||||
cetz.draw.content("Vereinigung.a", [A])
|
||||
cetz.draw.content("Vereinigung.b", [B])
|
||||
}) ],
|
||||
[Schnittmenge \ $A inter B$ \ ```py print(A & B) ```], [`{120}`], [
|
||||
#cetz.canvas({
|
||||
cetz.draw.scale(op_scale)
|
||||
cetz-venn.venn2(
|
||||
name: "Durchschnitt",
|
||||
a-fill: none,
|
||||
b-fill: none,
|
||||
ab-fill: yellow.transparentize(40%),
|
||||
)
|
||||
cetz.draw.content("Durchschnitt.a", [A])
|
||||
cetz.draw.content("Durchschnitt.b", [B])
|
||||
}) ],
|
||||
[Mengendifferenz \ $A \\ B$ \ ```py print(A - B) ```], [`{"10", "a"}`], [
|
||||
#cetz.canvas({
|
||||
cetz.draw.scale(op_scale)
|
||||
cetz-venn.venn2(
|
||||
name: "Mengendifferenz",
|
||||
a-fill: yellow.transparentize(40%),
|
||||
b-fill: none,
|
||||
ab-fill: none,
|
||||
)
|
||||
cetz.draw.content("Mengendifferenz.a", [A])
|
||||
cetz.draw.content("Mengendifferenz.b", [B])
|
||||
})
|
||||
],)
|
||||
|
||||
=== Dictionary
|
||||
Ein Dictionary ist wie ein Wörterbuch mit einem "Key" und einer dazugehörigen "vule". Die "Keys müssen dabei *einzigartig* sein und *hashabel* (keine Listen oder modifizerbare Objekte).
|
||||
#table(columns: (1fr, 1fr, 1fr),
|
||||
[Dictionary erstellen], [```py d1 = {"1": "1. Element", 2: [1, 2, 3]} ``` \ ```py d2 = {[1, 2]: 2} ```], [d2 ist ungültig weil Listen keine "Key's" sind.],
|
||||
[Auf Element zugreifen], [```py d1[2] ```], [Gibt `[1, 2, 3]` zurück],
|
||||
[Auf Element zugreifen], [```py d1["x"] ```], [Gibt einen Fehler da "x" nicht im Dictionary ist],
|
||||
[Auf Element zugreifen mit get()], [```py d1.get(2) # [1, 2, 3] ``` \ ```py d1.get("x") ```], [Gibt keinen Fehler auch wenn "x" nicht im Dictionary ist],
|
||||
[Element überschreiben], [```py d1[2] = 2 ```], [Die Liste wurde mit 2 überschrieben],
|
||||
[Element hinzufügen], [```py d1["neuer key"] = 12 ```], [Neuses Element mit dem der "value" 12.],
|
||||
)
|
||||
*Methoden* \
|
||||
```py d1 = { ’a ’: 10 , ’b ’: 27 , ’c ’: 12} ```
|
||||
#table(columns: (1fr, 1fr, 1fr),
|
||||
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]`],
|
||||
[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)]`],
|
||||
)
|
||||
|
||||
=== Kommentare
|
||||
#table(columns: (1fr, 1fr),
|
||||
[Einzeiliger Kommentar],[```py price = 5.50 # this is an inline comment ``` \ ```py # this is a short ```],
|
||||
[Mehrzeiliger Kommentar],[```py
|
||||
def prepare_data(self):
|
||||
""" Prepares all data
|
||||
[...]
|
||||
write to the database """
|
||||
self.db_connect ()
|
||||
```],
|
||||
)
|
||||
|
||||
=== input (Benutzer eingabe)
|
||||
Mit der input() funktion können eingaben vom User angenommen werden.
|
||||
#table(columns: 1fr, [```py
|
||||
number = input("Geben Sie eine Nummer ein : ") # eingabe als string (Text)
|
||||
int_number = int(number) # eingabe als intiger
|
||||
```])
|
||||
|
||||
=== print (Benutzer ausgabe)
|
||||
#table(columns: 1fr, [```py
|
||||
print("Hallo ich bin ein String")
|
||||
a , b = 10 , 12
|
||||
print(a)
|
||||
print(f"Hier ist die Variable a mit dem wert {a}") # Das ist ein "f" String
|
||||
|
||||
balance = 9876.9376
|
||||
print(f"Balance: CHF {balance:.2f}") # Balance: CHF 9876.94 -> Ausgabe auf 2 Stellen nach dem Komma gekuerzt
|
||||
```])
|
||||
|
||||
=== Entscheidungen
|
||||
|
||||
|
||||
|
||||
=== Runden
|
||||
#table(columns: (1fr, 1fr),
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user