Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
No results found
Show changes
Showing
with 27617 additions and 1711 deletions
notebooks/pics/repeat_triangle.png

1.53 KiB

This diff is collapsed.
notebooks/pics/tiled_triangle.png

3.32 KiB

%% Cell type:markdown id: tags:
# Einführungsaufgaben
## neue Bibliothek
### nb_black
- Installation (Terminal / Anaconda prompt): <code>$ [sudo] pip install nb_black </code>
- https://github.com/dnanhkhoa/nb_black
- uncompromising Python code formatter
- makes code review faster
- Apply by putting this code <code>%load_ext nb_black </code> into the first cell in your Notebook, run it and that's all :)
- based on black
- https://pypi.org/project/black/
- for "normal" python scripts
%% Cell type:code id: tags:
```
%load_ext nb_black
```
%% Cell type:markdown id: tags:
## Würfeln
1. Erstelle eine Funktion <code>dice</code>, die einen Würfel x-mal würfelt. (x soll die Eingabe der Funktion sein).
2. Gebe eine Statistik aus, wie oft welcher Wert gewürfelt wurde.
- Tipp: Nutze die Bibliothek random, um zufällige Werte zu generieren.
- Tipp: Nutze Schleifen (while, for)
3. Verkürze deinen Code durch List Comprehension
%% Cell type:code id: tags:
```
def dice(x):
""
```
%% Cell type:code id: tags:
```
# Codetest
dice(1000000)
```
%% Cell type:markdown id: tags:
## Schere, Stein, Papier
1. Erstelle ein Schere-Stein-Papier-Spiel, der eine Eingabe (durch <code> input() </code>) von dir entgegennimmt und den Computer eine zufällige Antwort generieren lässt. Anschließend soll die Funktion ausgeben, wer gewonnen hat.
- Nutze Schleifen (for, while)
- Bedingungen (if-statements)
- Nutze die Bibliothek random
- Akzeptiere Groß-und Kleinschreibung
%% Cell type:code id: tags:
```
def ssp():
""
```
%% Cell type:code id: tags:
```
ssp()
```
%% Cell type:markdown id: tags:
## Plotten
1. Plotte eine sinus und eine cosinus Kurve.
- Nutze die Bibliothek numpy, um die sinus und cosinus Funktion zu benutzen
- Nutze die Bibliothek matplotlib, um die Kurven zu zeichnen
2. Gebe dem Plot eine Überschrift, Achsenbeschriftungen, Einschränkungen der x-Achse (-360° bis 360°) und eine Legende.
%% Cell type:code id: tags:
```
```
%% Cell type:markdown id: tags:
## Hangman
1. Erstelle ein Hangman-Spiel in mehreren Schritten (https://de.wikipedia.org/wiki/Galgenm%C3%A4nnchen). Die nächsten Schritte sind Tipps, wie ihr vorgehen könnt. Das ist nur eine von vielen Möglichkeiten. Probiert es selbst aus, ihr könnt gerne auch einen anderen Weg gehen.
2. Erstelle eine Funktion, die zwei Strings entgegennimmt und alle Indizes wiedergibt, an denen der erste String im zweiten String erscheint.
- Nutze die Bibliothek <code>re</code> und ggf. die Funktion <code>finditer</code> (Man kann die Ausgabe von <code>finditer</code> durchlaufen und durch <code>start()</code> auf den Index zugreifen. Siehe auch die Dokumentation und Beispiele im Internet)
3. Anschließend erweitere die Funktion, sodass die Funktion nur noch das Wort entgegennimmt und du per Eingabe (<code>input()</code>) nacheinander mehrere Buchstaben eingeben kannst (z.B. per Schleife, siehe -> <code>while true:</code>). Auch hier sollen wieder alle Indizes ausgegeben werden, an denen die einzelnen Buchstaben im Wort erscheinen.
4. Erstelle zunächst eine Bedingung, die checkt, ob der Buchstabe im Wort vorkommt. Falls ja, gebe den Buchstaben aus. Wenn nein, gebe bitte eine Nachricht aus, dass die Eingabe falsch war.
5. Was brauchen wir noch? In jedem Schritt die Ausgabe von dem unvollständigen Wort mit den schon gefundenen Buchstaben.
- eine Liste mit sovielen Elementen, wie es Buchstaben im Wort gibt. Jedes Element ist ein Minus oder Unterstrich
- Erweitere die Bedingung aus 4), indem du in der Liste das Element mit dem zur Zeit eingegebenen Buchstaben ersetzt
6. Jetzt brauchen wir noch Abbruchbedingungen in der Schleife durch <code>return</code>. Wo müssen diese hin?
7. Wir können jetzt durch einen Counter die Anzahl der Versuche limitieren. (zusätzliche Bedingung?)
8. Ein Willkommenstext wäre außerdem schön.
9. Anstatt eines Wortes soll die Funktion nun eine Liste von Wörtern entgegennehmen und zufällig eins aussuchen, um das gespielt wird. Dann weißt du auch nicht mehr, welches dran ist.
10. Anzahl der Fehlversuche variabel setzen (z.B. bei jedem neuen Spiel einsetzbar, verschiedene Schwierigkeitsstufen, abhängig von der Länge des Wortes, etc.)
11. Ein Hangman-Bild bei jedem Fehlversuch anzeigen und jedes Mal erweitern.
%% Cell type:code id: tags:
```
# hier ist ein Bild, was ihr theoretisch zur Visualisierung nehmen könnt.
# Ihr könnt euch aber auch ein eigenes ausdenken. Vielleicht gibt es coolere.
hangman = """
______
| |
o |
\|/ |
| |
/ \ |
/ \
"""
print(hangman)
```
%% Cell type:code id: tags:
```
```
%% Cell type:markdown id: tags:
![CC-BY-NC](https://scm.cms.hu-berlin.de/ibi/python/-/raw/master/img/cc-by-nc.png)
Dieses Notebook ist als freies Werk unter der Lizenz [Creative Commons Attribution-NonCommercial 3.0 Unported](http://creativecommons.org/licenses/by-nc/3.0/) verfügbar. Sie dürfen die Inhalte kopieren, verteilen und verändern, solange Sie die Urheber nennen und sie nicht für kommerzielle Zwecke nutzen.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.