tipps_und_tricks/python/oneline.md

104 lines
2.7 KiB
Markdown
Raw Normal View History

# Python Programme in einer Zeile code schreiben
Wenn du Scripte bis zur einer Zeile Code verkürzen möchtest; Hab ich hier ein paar Möglichkeite aufgeschrieben.
Eine ist Lambda, weiteres findest du in Inhaltsverzeichniss:
## Inhaltsverzeichnis:
1. [Lambda](##-lambda-funktionen-grundlage)
2. [Semikolons](##-semikolon)
3. [Listen definieren](#-list-comprehension)
4. [Mehrfachzuwesungen](##-variablen-mehrfachzuwesungen)
## Lambda Funktionen Grundlage
Lambda wird benutzt um eine **Anonyme Funktion** zu definieren
> Beispiel:
> ```
> funcbla = <lambda-ausdruck>
> funcbla()
> ```
Oder du kannst eine lambda Funktion direkt ausführen:
> `(<lambda-ausdruck>)(<zu-übergebene-variablen>)`oder `<lambda-ausdruck(ohne "lambda : <vars>")` <-- **locale variablen werden genutzt**
### Lambda Ausdrücke:
man definiert eine Ausdruck so:
> ```
> lambda <vars> : <func1()> if <statement> else <func2>
> ```
> Beispiel:
> ```
> print((lambda x : "ungerade" if x%2 else "gerade")(123))
> ```
> Output: `ungerade`
>
> **Wenn du eine Funktion in einen Lambda Ausdruck verwendest, muss sie eine Variable zurückgeben.
> Lambda gibt entweder `ungerade` oder `gerade` im Beispiel and print() zurück.**
## Semikolon
Nutze ein `;` um mehrere Funktionen in einer Zeile zu verketten
> Beispiel:
> ```
> func1()
> func2()
> ```
> wird zu:
> ```
> func1();func2()
> ```
# List Comprehension
Mit List Comprehensions kann man Listen in einer zeiler definieren und darüber iterieren:
> Beispiel:
> ```
> list1 = []
> for x in range(10):
> list1.append(x)
> ```
> wird zu:
> ```
> list1 = [<vart-to-add(or you can use Variables like "x")> for x in range(10)]
> ```
Mann kan auch if statements in Comprehentions nutzen:
```
newlist = [expression for item in iterable if condition == True]
```
> Beispiel:
> ```
> list1 = ["a", "b", "c", "d", "e"]
> list2 = [x for x in fruits if "a" in x]
> ```
> ^ Addiert Das Objekt x zu list2 wenn `if "a" in x` also eine "a" in den String Objekt ist.
## Variablen Mehrfachzuwesungen
variablen sind was sehr nützliches was nicht fehlen darf!
Man kann sie auf verschiedene arten zuwei?en, eine davon ist mit Mehrfachzuweisungen:
> ```
> var1 = 1
> var2 = 2
> var3 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
> ```
> wir zu:
> ```
> var1, var2, var3 = 1, 2, [x for x in range(10]```
### Stapel = Stapel
In Grunde kann man mit Mehrfachzuweisungen Stapel(Tuple) entpacken oder packen:
> Packen eines Tupels in eine Variable
> ```
> var1 = a,b,c
> ```
> soviel wie:
> "var = tulple"
> ^ "Anfenger Hinweiss: Wenn man das untenstehenliegene Prinzip verstanden hat ist man flexibler"
> Packen eines Tupels in einen Tuple:
> ```
> var1, var2, var3 = 1, 2, 3
> ```
> soviel wie:
> "tuple = tulple"