Skip to content

Commit 0b154de

Browse files
author
dodonator
committed
Level2.md Erklärungen entfernt Aufgaben hinzugefügt
Auch in dieser Datei wurden die Erklärungen reduziert, da diese in den ipython Notebooks erfolgen sollen. Die Aufgabenstellungen wurden aus der Level2_Aufgaben Datei übernommen und angepasst.
1 parent c061f1c commit 0b154de

1 file changed

Lines changed: 31 additions & 90 deletions

File tree

Level2.md

Lines changed: 31 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -1,103 +1,44 @@
11
# Level 2
22

3-
## Der Programmfluss
4-
Bisher hat unser Programm einen Schritt nach den anderen ausgeführt. Man kann also sagen,
5-
dass unsere Programme sehr linear aufgebaut waren. Damit waren die bisherigen Programme sehr primitiv,
6-
da sie noch nicht auf verschiedene Eingaben mit verschiedenen Aktionen
7-
reagieren konnten. Um dies zu ändern gibt es in den meisten Programmiersprachen sogenannte
8-
Kontrollstrukturen. Diese dienen einerseits dazu, dem Benutzer das Programmieren zu erleichtern,
9-
andererseits ermöglichen diese Kontrollstrukturen aber auch erst die Formulierung komplexer
10-
Programme, denn sie es ermöglichen den Programmablauf nonlinear zu gestalten.
3+
In Level 1 hast du gelernt Konsoleneingaben vom Benutzer entgegen zu nehmen und, diese EIngaben zu verarbeiten und die Ergebnisse dieser Verarbeitung in der Konsole auszugeben.
114

12-
## Boolean
13-
Der Boolean-Typ ist ein Datentyp, der einen Wahrheitswert enthält. Er kann entweder `True`
14-
oder `False` sein.
5+
In Level 2 wirst die `if`-Bedingung kennenlernen, die es dir ermöglicht Bedingungen zu prüfen, die erfüllt sein müssen, damit ein Codeabschnitt ausgeführt werden kann.
6+
Desweiteren wirst du die `while`-Schleife kennenlernen, welche einen Codeabschnitt wiederholt ausführt, solange eine Bedingung erfüllt ist.
7+
Im Zusammenhang mit der `if`-Bedingung und der `while`-Schleife wirst du den Datentypen `boolean` kennenlernen. Dieser Datentyp beinhaltet Wahrheitswerte.
8+
Am Ende des Levels wirst bereits in der Lage sein komplexere Programme umzusetzen.
159

16-
>>> a = True
17-
>>> b = False
18-
>>> print(a, b)
19-
(True, False)
10+
Um mit diesem Level zu starten navigiere zur [Level2.ipynb](https://github.com/pythonfoo/pythonfooLite/blob/master/Level_02/Level_2.ipynb) Datei im Code Repository.
2011

21-
Die aus der Mathematik bekannten Vergleichsoperatoren geben Booleanwerte zurück:
12+
## Aufgaben
2213

23-
>>> print(5 > 6)
24-
False
25-
>>> print(3 == 4) # WIchtig "==" entspricht dem mathematischen Operator "="
26-
False
27-
>>> print (not True)
28-
False
29-
>>> print (True != False) # a != b entspricht not(a == b)
30-
True
14+
Die folgenden Aufgaben sollen dir helfen, die in diesem Level erlangten Kenntnisse unter die Probe zu stellen. Wie immer kannst du dich bei Fragen oder Problemen gerne an uns wenden.
3115

32-
Die Vergleichsoperatoren "==", "!=", "<", ">", sowie die Kombinationen "<=" und ">=" heißen
33-
binäre Operatoren, da sie zwei Elemente bearbeiten. Das `not` ist, ähnlich zu dem `-` in der
34-
Mathematik ein unärer Operator, da es nur ein Element benötigt.
35-
Mit dem Befehl `bool()`kann man Werte in einen Boolean umwandeln lassen, dabei ist zu
36-
beachten, dass dies nur in Ausnahmefällen sinnvoll ist.
16+
### 2.1 password.py
3717

38-
>>> print(bool(0))
39-
False
40-
>>> print(bool(""))
41-
False
42-
>>> print(bool(1))
43-
True
44-
>>> print(bool("a"))
45-
False
18+
* Schreibe ein Programm, das ein Passwort entgegennimmt, es mit einem intern
19+
gespeicherten Passwort vergleicht und eine Begrüßungsnachricht ausgibt, falls das
20+
Passwort richtig war.
21+
* Ändere dein Programm so ab, dass der Benutzer auch eine Nachricht bekommt, wenn
22+
das Passwort falsch war.
23+
* Ändere dein Programm so ab, dass der Benutzer 3 Versuche hat, das Passwort richtig
24+
einzugeben.
4625

47-
So ist ein String immer als Boolean True, solange er nicht leer ist und ein Integer immer True,
48-
solange er nicht `0` ist.
26+
### 2.2 diamond.py
4927

50-
## Die if-Bedingung
51-
Man stelle sich eine Passwortabfrage vor: Das Programm soll nur weiterlaufen, wenn
52-
der Benutzer ein richtiges Passwort eingegeben hat. Dies war uns bisher nicht möglich, da wir
53-
noch keine Möglichkeit hatten zwei Werte miteinander zu vergleichen. Die if-Abfrage ist eine
54-
Kontrollstruktur, die einen boolschen Ausdruck entgegen nimmt und einen Block Code nur
55-
ausführt, wenn der boolsche Ausdruck `True` ist.
28+
* Schreibe ein Programm, das die unten abgebildete ASCII-Art im Terminal darstellt.
29+
* Ändere dein Programm so ab, dass die maximale Breite der Raute vom Benutzer angegeben werden kann.
30+
* Ändere dein Programm so ab, dass das Zeichen, aus dem die Raute gebildet wird, vom Benutzer eingegeben werden kann.
5631

57-
>>> x = int(input("'Geben Sie eine Zahl ein: '"))
58-
>>> if x == 3:
59-
>>> print(3)
60-
'Geben Sie eine Zahl ein:' 3
61-
3
32+
```
33+
#
34+
###
35+
#####
36+
###
37+
#
38+
```
6239

63-
Allein mit einer if-Bedingung ist schon vieles möglich, allerdings möchte der Programmierer
64-
manchmal mehrere Fälle voneinander unterscheiden und verschieden darauf reagieren.
65-
Dafür gibt es das Schlüsselwort `else`, das immer am Ende einer if-Bedingung steht und nur
66-
dann ausgeführt wird, wenn alle vorherigen Abfragen gescheitert sind.
40+
Nach erfolgreicher Bearbeitung der Aufgabe sollte das Programm wie folgt ablaufen:
6741

68-
>>> password = input("Bitte das Passwort eingeben: ")
69-
>>> if password == "Geheim":
70-
>>> print("Willkommen")
71-
>>> else:
72-
>>> print("Zutritt verweigert")
73-
74-
Zu beachten sind bei der if-Bedingung und allgemein auch bei anderen Kontrollstrukturen die
75-
Einrückung und die Syntax. Die Definition einer if-Bedingung ist allgemein ausgedrückt:
76-
77-
if boolscher Ausdruck :
78-
Anweisungen
79-
else:
80-
Anweisungen
81-
82-
Bei der Tiefe der Einrückung liegt eine häufige Fehlerquelle, deshalb hat man sich auf 4
83-
Leerzeichen oder einen Tab derselben Länge geeinigt. PEP8, ein Styleguide für die
84-
Programmierung mit Python, legt 4 Leerzeichen als Einrückungstiefe fest. Egal wie viele
85-
Leerzeichen oder Tabs du benutzt, ist es wichtig im gesamten Programm oder noch besser
86-
in allen deinen Programmen einheitlich zu bleiben, da dies Fehler vermeidet.
87-
Viele Texteditoren bieten zudem an, Tabs in Leerzeichen umzuwandeln, was den Vorteil hat,
88-
dass man sich Schreibarbeit spart aber trotzdem PEP8 kompatibel bleibt. Zu PEP8 kommen
89-
wir in späteren Leveln nochmal.
90-
91-
Zu zu `if` und `else`gibt es noch die Verknüpfung von
92-
beiden, nämlich `elif`, was für `else if ` steht.
93-
94-
if Bedingung1 :
95-
Anweisungen1
96-
elif Bedingung2 :
97-
Anweisungen2
98-
else:
99-
Anweisungen
100-
101-
Eine if-Bedingung kann beliebig viele `elif`Blöcke haben, aber jeweils nur ein `if`und nur ein
102-
`else`. `if`, `elif` und `else` sind Schlüsselwörter, was bedeutet, dass sie für if-Abfragen
103-
reserviert sind, weshalb keine Variable if, elif oder else heißen kann.
42+
* Der Benutzer gibt eine maximale Breite an Zeichen ein.
43+
* Der Benutzer gibt ein Zeichen ein.
44+
* Das Programm erstellt eine Raute entsprechend der maximalen Breite mit dem angegebenen Zeichen und gibt diese Raute aus.

0 commit comments

Comments
 (0)