Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
195 changes: 195 additions & 0 deletions German/02_variables_builtin_functions_de.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,195 @@
<div align="center">
<h1> 30 Tage Python: Tag 2 - Variablen, Eingebaute Funktionen</h1>
<a class="header-badge" target="_blank" href="https://www.linkedin.com/in/asabeneh/">
<img src="https://img.shields.io/badge/style--5eba00.svg?label=LinkedIn&logo=linkedin&style=social">
</a>
<a class="header-badge" target="_blank" href="https://twitter.com/Asabeneh">
<img alt="Twitter Follow" src="https://img.shields.io/twitter/follow/asabeneh?style=social">
</a>

<sub>Autor:
<a href="https://www.linkedin.com/in/asabeneh/" target="_blank">Asabeneh Yetayeh</a><br>
<small> Zweite Edition: Juli 2021</small>
</sub>

</div>

[<< Tag 1](./README.md) | [Tag 3 >>](./03_operators_de.md)

![30DaysOfPython](../images/30DaysOfPython_banner3@2x.png)

- [📘 Tag 2](#-tag-2)
- [Eingebaute Funktionen (Built-in functions)](#eingebaute-funktionen-built-in-functions)
- [Variablen](#variablen)
- [Mehrere Variablen in einer Zeile deklarieren](#mehrere-variablen-in-einer-zeile-deklarieren)
- [Datentypen](#datentypen)
- [Datentypen prüfen und Umwandlung (Casting)](#datentypen-prüfen-und-umwandlung-casting)
- [Zahlen](#zahlen)
- [💻 Übungen - Tag 2](#-übungen---tag-2)
- [Übungen: Level 1](#übungen-level-1)
- [Übungen: Level 2](#übungen-level-2)

# 📘 Tag 2

## Eingebaute Funktionen (Built-in functions)

In Python gibt es viele eingebaute Funktionen. Diese sind global verfügbar, was bedeutet, dass du sie nutzen kannst, ohne etwas zu importieren oder zu konfigurieren. Einige der am häufigsten verwendeten Funktionen sind: _print()_, _len()_, _type()_, _int()_, _float()_, _str()_, _input()_, _list()_, _dict()_, _min()_, _max()_, _sum()_, _sorted()_, _open()_, _help()_ und _dir()_. Eine vollständige Liste findest du in der [Python-Dokumentation](https://docs.python.org/3/library/functions.html).

![Built-in Functions](../images/builtin-functions.png)

Lass uns die Python-Shell öffnen und einige dieser Funktionen ausprobieren.

![Eingebaute Funktionen Übung](../images/builtin-functions_practice.png)

Probieren wir weitere Funktionen aus:

![Help und Dir Funktionen](../images/help_and_dir_builtin.png)

Wie du im Terminal sehen kannst, hat Python reservierte Wörter (Keywords). Wir verwenden diese nicht als Namen für Variablen oder Funktionen.

![Min Max Sum](../images/builtin-functional-final.png)

## Variablen

Variablen speichern Daten im Computerspeicher. Es wird empfohlen, aussagekräftige Namen (mnemonische Variablen) zu verwenden, die leicht zu merken sind. Eine Variable verweist auf eine Speicheradresse, an der die Daten abgelegt sind.

Regeln für Variablennamen in Python:
- Ein Variablenname muss mit einem Buchstaben oder einem Unterstrich (_) beginnen.
- Er darf nicht mit einer Zahl beginnen.
- Er darf nur alphanumerische Zeichen und Unterstriche enthalten (A-z, 0-9 und _).
- Variablennamen sind fallsensitiv (`firstname`, `Firstname`, `FirstName` und `FIRSTNAME` sind unterschiedliche Variablen).

Gültige Variablennamen:
```shell
firstname
lastname
age
country
first_name
last_name
_if # Wenn wir ein reserviertes Wort verwenden müssen
year_2021
num1
```

Ungültige Variablennamen:
```shell
first-name # Bindestrich nicht erlaubt
first@name # Sonderzeichen nicht erlaubt
1num # Beginnt mit einer Zahl
```

In Python verwenden wir den **snake_case**. Das bedeutet, wir nutzen Unterstriche, um Wörter zu trennen (z.B. `first_name`, `last_name`).

Das Zuweisen eines Wertes zu einer Variable nennt man Deklaration. Das Gleichheitszeichen (=) ist der Zuweisungsoperator.

**Beispiel:**
```python
# Variablen in Python
first_name = 'Asabeneh'
last_name = 'Yetayeh'
country = 'Finnland'
city = 'Helsinki'
age = 250
is_married = True
skills = ['HTML', 'CSS', 'JS', 'React', 'Python']
person_info = {
'firstname':'Asabeneh',
'lastname':'Yetayeh',
'country':'Finnland',
'city':'Helsinki'
}
```

Die Funktion `print()` kann eine unbegrenzte Anzahl von Argumenten entgegennehmen. Ein Argument ist ein Wert, den wir der Funktion übergeben.

**Beispiel:**
```python
print('Hallo, Welt!') # 'Hallo, Welt!' ist ein Argument
print('Hallo', ',', 'Welt', '!') # Vier Argumente übergeben
print(len('Hallo, Welt!')) # len() nimmt nur ein Argument
```

### Mehrere Variablen in einer Zeile deklarieren

Du kannst mehrere Variablen gleichzeitig deklarieren:

**Beispiel:**
```python
first_name, last_name, country, age, is_married = 'Asabeneh', 'Yetayeh', 'Finnland', 250, True

print(first_name, last_name, country, age, is_married)
```

Benutzereingaben mit `input()` abfragen:
```python
name = input('Wie heißt du? ')
alter = input('Wie alt bist du? ')

print(name)
print(alter)
```

## Datentypen prüfen und Umwandlung (Casting)

- **Datentypen prüfen:** Nutze `type()`.
```python
print(type('Asabeneh')) # <class 'str'>
print(type(10)) # <class 'int'>
print(type(3.14)) # <class 'float'>
```

- **Casting:** Umwandlung eines Typs in einen anderen mit `int()`, `float()`, `str()`, `list()`, `set()`.
Bei Berechnungen müssen Zahlen in Strings erst konvertiert werden.

**Beispiele:**
```python
# int zu float
num_int = 10
num_float = float(num_int) # 10.0

# float zu int
gravity = 9.81
print(int(gravity)) # 9

# int zu str
num_str = str(10) # '10'

# str zu list
name = 'Python'
print(list(name)) # ['P', 'y', 't', 'h', 'o', 'n']
```

## Zahlen

In Python gibt es drei Haupttypen von Zahlen:
1. **Integers:** Ganze Zahlen (positiv, negativ, Null).
2. **Floating Point (Float):** Dezimalzahlen (z.B. 9.81, -2.5).
3. **Complex:** Komplexe Zahlen (z.B. 1 + j).

---

## 💻 Übungen - Tag 2

### Übungen: Level 1
1. Erstelle im Ordner `30DaysOfPython` einen Unterordner `day_2` und darin eine Datei `variables.py`.
2. Füge einen Kommentar hinzu: 'Tag 2: 30 Tage Python Programmierung'.
3. Deklariere Variablen für Vorname, Nachname, vollständiger Name, Land, Stadt, Alter, Jahr, `is_married`, `is_true`, `is_light_on`.
4. Deklariere mehrere Variablen in einer Zeile.

### Übungen: Level 2
1. Überprüfe den Datentyp all deiner Variablen mit `type()`.
2. Ermittle die Länge deines Vornamens mit `len()`.
3. Vergleiche die Länge deines Vornamens mit der deines Nachnamens.
4. Deklariere 5 als `num_one` und 4 als `num_two`.
- Berechne Summe, Differenz, Produkt, Division, Rest (Modulo), Potenz und Ganzzahl-Division.
5. Ein Kreis hat einen Radius von 30 Metern.
- Berechne die Fläche (`area_of_circle`).
- Berechne den Umfang (`circum_of_circle`).
- Nimm den Radius als Benutzereingabe (`input`) und berechne die Fläche.
6. Nutze `input()`, um Vorname, Nachname, Land und Alter abzufragen.
7. Führe `help('keywords')` aus, um die reservierten Wörter in Python zu sehen.

🎉 HERZLICHEN GLÜCKWUNSCH! 🎉

[<< Tag 1](./README.md) | [Tag 3 >>](./03_operators_de.md)
144 changes: 144 additions & 0 deletions German/03_operators_de.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
<div align="center">
<h1> 30 Tage Python: Tag 3 - Operatoren</h1>
<a class="header-badge" target="_blank" href="https://www.linkedin.com/in/asabeneh/">
<img src="https://img.shields.io/badge/style--5eba00.svg?label=LinkedIn&logo=linkedin&style=social">
</a>
<a class="header-badge" target="_blank" href="https://twitter.com/Asabeneh">
<img alt="Twitter Follow" src="https://img.shields.io/twitter/follow/asabeneh?style=social">
</a>

<sub>Autor:
<a href="https://www.linkedin.com/in/asabeneh/" target="_blank">Asabeneh Yetayeh</a><br>
<small> Zweite Edition: Juli 2021</small>
</sub>
</div>

[<< Tag 2](./02_variables_builtin_functions_de.md) | [Tag 4 >>](./04_strings_de.md)

![30DaysOfPython](../images/30DaysOfPython_banner3@2x.png)

- [📘 Tag 3](#-tag-3)
- [Boolean (Wahrheitswerte)](#boolean-wahrheitswerte)
- [Operatoren](#operatoren)
- [Zuweisungsoperatoren](#zuweisungsoperatoren)
- [Arithmetische Operatoren](#arithmetische-operatoren)
- [Vergleichsoperatoren](#vergleichsoperatoren)
- [Logische Operatoren](#logische-operatoren)
- [💻 Übungen - Tag 3](#-übungen---tag-3)

# 📘 Tag 3

## Boolean (Wahrheitswerte)

Ein Boolean-Datentyp repräsentiert einen von zwei Werten: _True_ (Wahr) oder _False_ (Falsch). Diese Datentypen werden besonders wichtig, wenn wir Vergleichsoperatoren nutzen. Beachte, dass in Python der erste Buchstabe immer großgeschrieben werden muss (**T**rue, **F**alse), anders als zum Beispiel in JavaScript.

**Beispiel: Boolean-Werte**
```python
print(True)
print(False)
```

## Operatoren

Python unterstützt verschiedene Arten von Operatoren. In diesem Abschnitt konzentrieren wir uns auf die wichtigsten.

### Zuweisungsoperatoren

Zuweisungsoperatoren werden verwendet, um Variablen Werte zuzuweisen. Das bekannteste Beispiel ist das Gleichheitszeichen (=). Während es in der Mathematik zeigt, dass zwei Werte gleich sind, bedeutet es in Python, dass wir einen Wert in einer Variablen speichern.

![Zuweisungsoperatoren](../images/assignment_operators.png)

### Arithmetische Operatoren:

- **Addition (+):** `a + b`
- **Subtraktion (-):** `a - b`
- **Multiplikation (*):** `a * b`
- **Division (/):** `a / b` (Ergibt immer eine Fließkommazahl)
- **Modulo (%):** `a % b` (Ergibt den Rest der Division)
- **Ganzzahl-Division (//):** `a // b` (Entfernt den Rest nach dem Komma)
- **Potenzierung (**):** `a ** b` (a hoch b)

![Arithmetische Operatoren](../images/arithmetic_operators.png)

**Beispiel: Ganze Zahlen (Integers)**
```python
# Arithmetische Operationen in Python
print('Addition: ', 1 + 2) # 3
print('Subtraktion: ', 2 - 1) # 1
print('Multiplikation: ', 2 * 3) # 6
print('Division: ', 4 / 2) # 2.0 (Division ergibt immer einen Float)
print('Ganzzahl-Division: ', 7 // 2) # 3 (Gibt das Ergebnis ohne Rest zurück)
print('Modulo: ', 3 % 2) # 1 (Gibt den Rest zurück)
print('Potenzierung: ', 2 ** 3) # 8 (2 * 2 * 2)
```

### Vergleichsoperatoren

In der Programmierung vergleichen wir ständig Werte. Wir prüfen, ob ein Wert größer, kleiner oder gleich einem anderen Wert ist.

![Vergleichsoperatoren](../images/comparison_operators.png)

**Beispiel: Vergleichsoperatoren**
```python
print(3 > 2) # True, da 3 größer als 2 ist
print(3 == 2) # False, da 3 nicht gleich 2 ist
print(len('mango') == len('avocado')) # False
print('python' > 'dragon') # False
```

Zusätzlich zu den Standards nutzt Python:
- _is_: Gibt True zurück, wenn beide Variablen dasselbe Objekt sind.
- _is not_: Gibt True zurück, wenn sie nicht dasselbe Objekt sind.
- _in_: Gibt True zurück, wenn ein Element in einer Liste/String enthalten ist.
- _not in_: Gibt True zurück, wenn ein Element nicht enthalten ist.

### Logische Operatoren

Anders als viele andere Sprachen nutzt Python die Wörter _and_, _or_ und _not_ als logische Operatoren.

![Logische Operatoren](../images/logical_operators.png)

```python
print(3 > 2 and 4 > 3) # True - beide Aussagen sind wahr
print(3 > 2 or 4 < 3) # True - eine der Aussagen ist wahr
print(not 3 > 2) # False - Verneinung von True ergibt False
```

---

## 💻 Übungen - Tag 3

1. Deklariere dein Alter als Integer-Variable.
2. Deklariere deine Größe als Float-Variable.
3. Deklariere eine Variable für eine komplexe Zahl.
4. Berechne die Fläche eines Dreiecks (Fläche = 0.5 * Basis * Höhe). Frage den Benutzer nach Basis und Höhe.
5. Berechne den Umfang eines Dreiecks (Umfang = a + b + c).
6. Berechne Fläche und Umfang eines Rechtecks (Länge und Breite per `input`).
7. Berechne Fläche und Umfang eines Kreises (Radius per `input`, pi = 3.14).
8. Berechne Steigung, x-Schnittpunkt und y-Schnittpunkt von `y = 2x - 2`.
9. Berechne die Steigung und den [Euklidischen Abstand](https://de.wikipedia.org/wiki/Euklidischer_Abstand) zwischen Punkt (2, 2) und Punkt (6, 10).
10. Vergleiche die Steigungen aus Aufgabe 8 und 9.
11. Berechne den Wert von y (`y = x^2 + 6x + 9`). Probiere verschiedene x-Werte aus, um zu sehen, wann y Null wird.
12. Finde die Länge von 'python' und 'dragon' und erstelle eine falsche Vergleichsaussage.
13. Prüfe mit `and`, ob 'on' sowohl in 'python' als auch in 'dragon' vorkommt.
14. Prüfe mit `in`, ob das Wort 'jargon' im Satz "I hope this course is not full of jargon" vorkommt.
15. Prüfe, ob 'on' nicht in 'dragon' und 'python' vorkommt.
16. Ermittle die Länge von 'python', wandle den Wert in einen Float und dann in einen String um.
17. Wie prüft man mit Python, ob eine Zahl gerade ist (durch 2 teilbar)?
18. Prüfe, ob die Ganzzahl-Division von 7 durch 3 gleich dem Integer-Wert von 2.7 ist.
19. Prüfe, ob der Typ von '10' gleich dem Typ von 10 ist.
20. Prüfe, ob `int('9.8')` gleich 10 ist (Hinweis: Du musst eventuell erst in Float umwandeln).
21. Berechne den Wochenlohn (Stunden * Stundensatz per `input`).
22. Berechne die gelebten Sekunden eines Menschen basierend auf seinen Lebensjahren (per `input`).
23. Schreibe ein Skript, das folgende Tabelle ausgibt:
```
1 1 1 1 1
2 1 2 4 8
3 1 3 9 27
4 1 4 16 64
5 1 5 25 125
```

🎉 HERZLICHEN GLÜCKWUNSCH! 🎉

[<< Tag 2](./02_variables_builtin_functions_de.md) | [Tag 4 >>](./04_strings_de.md)
Loading