1
0

Compare commits

..

13 Commits

Author SHA1 Message Date
7f447c92e7 Einführung/03_Python-Basics-Code.md aktualisiert 2024-02-05 11:57:06 +00:00
Lukas Blacha
b7db925a10 First Commit 2023-02-03 14:41:24 +01:00
Lukas Blacha
e2b3c636ac Fixed Typo 2023-02-03 11:02:29 +01:00
Lukas Blacha
fef4efd923 Created 05_Python-Basic-Discord-Bot.md - First basic Bot 2023-02-03 08:42:05 +01:00
Lukas Blacha
5b19a8626e Rename 2023-02-03 08:40:03 +01:00
Lukas
7a0b826d95 „Aufgaben/03_Python-Basics-Code.md“ ändern
Fixes
2023-02-02 22:29:21 +00:00
Lukas Blacha
de333a611c Added 04_Python-Basics-IF-ELSE.md 2023-02-02 20:30:50 +01:00
Lukas Blacha
eee0183fc5 Added f""-Formatting 2023-02-02 20:30:30 +01:00
9d6cd786fe File created and first text added 2023-02-02 13:52:56 +01:00
Lukas
e5712b4f89 „Aufgaben/00_Python.md“ ändern
Added Source-Link
2023-02-01 22:30:12 +00:00
11f3c7bc44 File created and first text added 2023-02-01 23:26:31 +01:00
b4ab9245c8 Fixed typo 2023-02-01 23:25:59 +01:00
4448326077 Added 00_Python.md 2023-02-01 23:25:46 +01:00
9 changed files with 320 additions and 12 deletions

View File

@@ -1,12 +0,0 @@
# Python3 Installation
## In diesen Kapitel lernst du, wie zu Python installierst.
### Installation: Windows
### Installation: macOS
### Installation: Linux

44
Aufgaben/Basic-Bot.py Normal file
View File

@@ -0,0 +1,44 @@
import discord
from discord.ext import commands
import os
description = """
An example bot to showcase the discord.ext.commands extension module.
There are a number of utility commands being showcased here.
"""
intents = discord.Intents.default()
intents.members = True
intents.message_content = True
bot = commands.Bot(
command_prefix=commands.when_mentioned_or("!"),
description=description,
intents=intents)
@bot.event
async def on_ready():
print(f"Logged in as {bot.user} (ID: {bot.user.id})")
print("------")
@bot.command()
async def add(ctx: commands.Context, left: int, right: int):
"""Adds two numbers together."""
await ctx.send(str(left + right))
@bot.command()
async def calc(ctx: commands.Context, left: int, opper: str, right: int):
if opper == "+":
await ctx.send(str(left + right))
elif opper == "-":
await ctx.send(str(left - right))
elif opper == "*":
await ctx.send(str(left * right))
elif opper == "/":
await ctx.send(str(left / right))
else:
await ctx.send(f"Bitte überprüfe deine Eingabe! `{opper}` ist kein gültiger Operand")
bot.run('')

33
Einführung/00_Python.md Normal file
View File

@@ -0,0 +1,33 @@
# Was ist Python?
Python ist eine weit verbreitete Programmiersprache, welche von Guido van Rossum entwickelt und 1991 freigegeben wurde.
Es findet unter anderem Anwendung in folgenden Bereichen:
* Web-Entwicklung (Server seitig)
* Software Entwicklung
* Mathematik
* Systemautomation
## Fähigkeiten von Python
* Python kann auf einem Server benutzt werden um Web-Applikationen bereitzustellen
* Python kann benutzt werden um Workflows zu erstellen.
* Python kann sich zu Datenbanken verbinden. Es kann diese Datenbanken sowohl lesen als auch modifizieren.
* Python kann benutzt werden um große Mengen an Daten und komplexe mathematische Daten aufzubereiten.
* Python kann benutzt werden um Einsatzfähige Software bereitzustellen.
## Warum Python?
* Python läuft auf einer vielzahl an Geräten (Windows, Linux, macOS)
* Python ist eine einfach zu lernende Sprach, ähnlich wie Englisch.
* Python hat eine Syntax, die es Entwicklern erlaubt, Programme mit weniger Zeilen zu schreiben als einige andere Programmiersprachen
* Python läuft auf einem Interpreter-System, was bedeutet, dass der Code sofort nach dem Schreiben ausgeführt werden kann. Dies bedeutet, dass das Prototyping sehr schnell erfolgen kann.
* Python kann auf prozedurale, objektorientierte oder funktionale Weise behandelt werden.
## Python-Syntax im Vergleich zu anderen Programmiersprachen
* Python wurde im Hinblick auf die Lesbarkeit entwickelt und weist einige Ähnlichkeiten mit der englischen Sprache auf, die von der Mathematik beeinflusst wurde.
* Python verwendet neue Zeilen, um einen Befehl abzuschließen, im Gegensatz zu anderen Programmiersprachen, die oft Semikolons oder Klammern verwenden.
* Python verwendet Einrückungen mit Leerzeichen, um den Geltungsbereich zu definieren, z. B. den Geltungsbereich von Schleifen, Funktionen und Klassen. Andere Programmiersprachen verwenden zu diesem Zweck häufig geschweifte Klammern.
> **Beispiel:**
>
> `print("Hallo, Welt!")`
Quelle: [ w3schools ]( https://www.w3schools.com/python/python_intro.asp )

View File

@@ -0,0 +1,12 @@
# Python3 Installation
## In diesem Kapitel lernst du, wie zu Python installierst.
### Installation: Windows
### Installation: macOS
### Installation: Linux

View File

@@ -0,0 +1,113 @@
# Python Basics - Code
## Deklarierung von Variablen
> *Variable mit Text*
>
> `var = "Hallo, Welt!"`
>
> ```
> >>> print(var)
> --> Hallo, Welt!
>
> >>> print(type(var))
> --> <class 'str'>
> ```
> *Variable mit nummerischem Wert*
>
> `var = 1024`
>
> ```
> >>> print(var)
> --> 1024
>
> >>> print(type(var))
> --> <class 'int'>
> ```
## Eingaben mit Python
> *Übergabe von Werten in eine Variable mit `input()`*
>
> `name = input()`
> ```
> >>> name = input("Bitte gib deinen Namen ein: ")
> --> print(name)
> ```
Die Variable "name" erhält den Wert, welcher bei der Eingabe eingegeben wird.
Typischerweise sind solche Eingaben meist von Datentyp String, also Text.
## Datenkonvertierung
Variablen können auch konvertiert werden. So können z.B. Integer (Ganzzahlen) immer zu String (Text) umgewandelt werden. Jedoch nicht andersherum!
**Beispiel:**
> ```
> >>> var_int = 1024
> >>> print(type(var_int))
> --> <class 'int'>
>
> >>> var_int = str(1024)
> >>> print(type(var_int))
> --> <class 'str'>
> ```
Durch das Hinzufügen von `str()` weist man dem Wert klar einen Datentyp zu.
In diesem Fall String (Text).
Eingaben, welche über `input()` getätigt werden, sind meistens Strings.
Diese können jedoch, solange diese nur Zahlen enthalten, auch in Integer (Nummerische Werte) konvertiert werden.
> ```
> >>> var = input("Bitte eine Zahl eingeben: ")
> --> Bitte eine Zahl eingeben: 1024
> >>> print(type(var))
> --> <class 'str'>
>
> # Jetzt mit Konvertierung
> > >>> var = int(input("Bitte eine Zahl eingeben: "))
> --> Bitte eine Zahl eingeben: 1024
> >>> print(type(var))
> --> <class 'int'>
> ```
**Versucht man einer nummerischen Variable einen Textuellen-Datentyp zuzuweisen, wird das nicht funktionieren und das Programm wird mit einem Fehler gestoppt!**
**Beispiel:**
> ```
> >>> var = int(input("Bitte eine Zahl eingeben: "))
> --> Bitte eine Zahl eingeben: Einhundert
> --> ValueError: invalid literal for int() with base 10: 'Einhundert'
> ```
Das Programm stoppt mit einem *ValueError*. Das bedeutet, dass der Wert einen Datentyp angenommen hat, welcher nicht gültig ist. Es wird auch gezeigt, mit welchem Datentyp gerechnet wird. In diesem Fall `int()`.
## Beispielaufgabe - Taschenrechner (addition)
> ```
> >>> zahl1 = int(input("Bitte 1. Zahl eingeben: "))
> --> Bitte 1. Zahl eingeben:
> >>> zahl2 = int(input("Bitte 2. Zahl eingeben: "))
> --> Bitte 2. Zahl eingeben:
> >>> summe = zahl1 + zahl2
> >>> print(summe)
> ```
**Programmiere nun einen Taschenrechner, welcher subtrahiert**
## String-Formatierung
Wenn du Variablen in deinem Code benutzt kannst du diese mit `print()` ausgeben.
Alternativ kannst du auch mit `print(var1, var2, varn)` mehrere Variablen ausgeben.
Möchtest du jedoch deinen String als Text flexibel formatieren kannst du sogenannte Platzhalter verwenden.
Schreibe in deinem `print()` nun folgendes: `print(f"")` mit {var} kannst du nun deine Variablen in den Text mit einbinden.
**Beispiel:**
> ```
> >>> var1 = "Äpfeln"
> >>> var2 = "Saft"
> >>> print(f"Aus {var1} kann man {var2} machen")
> --> Aus Äpfeln kann man Saft machen
> ```

View File

@@ -0,0 +1,25 @@
# Python Basics - Code (IF - ELSE)
Mit Hife von IF / ELSE Statements kann man bestimmte Aktionen triggern, wenn eine bestimmte Kondition erfüllt ist.
**Beispiel anhand einer Altersprüfung**
> ```
> name = str(input("Bitte gib deinen Namen ein: "))
> alter = int(input("Bitte gibt dein Alter ein: "))
>
> if alter >= 18:
> print(f"Hallo {name}, du bist volljährig ({alter})")
> else:
> print(f"Hallo {name}, du bist minderjährig ({alter})")
> ```
**Genereller Aufbau für IF-Anweisungen**
> ```
> >>> if cond1:
> >>> pass
> >>> elif cond2:
> >>> pass
> >>> elif condn:
> >>> pass
> >>> else:
> >>> pass
> ```

View File

@@ -0,0 +1,93 @@
# Python Basics - Discord Bot
Die Bibliothek welche wir für dieses Beisiel verwenden lautet [`py-cord`](https://pycord.dev/).
Du kannst pycord installieren indem du folgenden Befehl im Terminal ausführst: `python3 -m pip install py-cord`
## Aufbau des Codes
### Imports
An dieser Stelle importiert man alle, für das Projekt benötigten, Bibliotheken. Z.B.:
> ```
> import discord
> from discord.ext import commands
> ```
### Intents
Als Nächstes gibt man an, wie der Bot Nutzerdaten verarbeitet. In diesem Beispiel reichen die `defaults`:
> ```
> intents = discord.Intents.default()
> intents.members = True
> intents.message_content = True
> ```
### Bot Variable deklarieren
Hier wird die bot-Variable deklariert.
Außerdem wird noch der Prefix festgelegt (!), die Botbeschreibung wird hinzugefügt und die zuvor eingestellten intents werden übergeben.
> ```
> bot = commands.Bot(
> command_prefix=commands.when_mentioned_or("!"),
> description=description,
> intents=intents)
> ```
### Bot Events (@)
Sogenannte Events werden mit dem `@bot.event` Dekorator versehen. Dieser "Dekoriert" sozusagen den darunterliegenden Code.
Ein Beispiel für ein Bot-Event, wenn der Bot eingeloggt und bereit ist:
> ```
> @bot.event
> async def on_ready():
> print(f"Logged in as {bot.user} (ID: {bot.user.id})")
> print("------")
> ```
### Bot Commands
Um ein Command zu erstellen gibt es auch wieder einen Dekorator. Commands werden mit dem `@bot.command()` Dekorator versehen.
Ein Beispiel für einen Command um zwei Strings miteinander zu verbinden:
> ```
> @bot.command()
> async def add(ctx: commands.Context, left: int, right: int):
> """Adds two numbers together."""
> await ctx.send(str(left + right))
> ```
### Last but not least `bot.run()`
`bot.run("TOKEN")` kommt **immer** an das Ende deines Codes.
Dieser Codeschnipsel bildet den Abschluss.
### Das Beispiel einmal zusammengesetzt
```
import discord
from discord.ext import commands
description = """
An example bot to showcase the discord.ext.commands extension module.
There are a number of utility commands being showcased here.
"""
intents = discord.Intents.default()
intents.members = True
intents.message_content = True
bot = commands.Bot(
command_prefix=commands.when_mentioned_or("!"),
description=description,
intents=intents)
@bot.event
async def on_ready():
print(f"Logged in as {bot.user} (ID: {bot.user.id})")
print("------")
@bot.command()
async def add(ctx: commands.Context, left: int, right: int):
"""Adds two numbers together."""
await ctx.send(str(left + right))
bot.run("TOKEN")
```