108
Informatik I: Einführung in die Programmierung 5. Bedingungen, bedingte Ausführung Albert-Ludwigs-Universität Freiburg Peter Thiemann 6. November 20189

Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

Informatik I: Einführung in die Programmierung5. Bedingungen, bedingte Ausführung

Albert-Ludwigs-Universität Freiburg

Peter Thiemann6. November 20189

Page 2: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Bedingungen und der Typ bool

6. November 20189 P. Thiemann – Info I 2 / 39

Page 3: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Der Typ bool

Neben arithmetischen Ausdrücken gibt es noch Boolesche Ausdrücke mitTrue oder False als Werten.Die einfachsten Booleschen Ausdrücke sind Vergleiche mit demGleichheitsoperator ==.

Die Werte True und False gehören zum Typ bool.Arithmetische Operationen konvertieren Boolesche Werte automatisch nachint (False 7→ 0, True 7→ 1):

Python-Interpreter>>> 42 == 42

True>>> 'egg' == 'spam'False>>> type('egg' == 'spam')<class 'bool'>>>> True + True2

6. November 20189 P. Thiemann – Info I 4 / 39

Page 4: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Der Typ bool

Neben arithmetischen Ausdrücken gibt es noch Boolesche Ausdrücke mitTrue oder False als Werten.Die einfachsten Booleschen Ausdrücke sind Vergleiche mit demGleichheitsoperator ==.

Die Werte True und False gehören zum Typ bool.Arithmetische Operationen konvertieren Boolesche Werte automatisch nachint (False 7→ 0, True 7→ 1):

Python-Interpreter>>> 42 == 42True>>>

'egg' == 'spam'False>>> type('egg' == 'spam')<class 'bool'>>>> True + True2

6. November 20189 P. Thiemann – Info I 4 / 39

Page 5: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Der Typ bool

Neben arithmetischen Ausdrücken gibt es noch Boolesche Ausdrücke mitTrue oder False als Werten.Die einfachsten Booleschen Ausdrücke sind Vergleiche mit demGleichheitsoperator ==.

Die Werte True und False gehören zum Typ bool.Arithmetische Operationen konvertieren Boolesche Werte automatisch nachint (False 7→ 0, True 7→ 1):

Python-Interpreter>>> 42 == 42True>>> 'egg' == 'spam'

False>>> type('egg' == 'spam')<class 'bool'>>>> True + True2

6. November 20189 P. Thiemann – Info I 4 / 39

Page 6: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Der Typ bool

Neben arithmetischen Ausdrücken gibt es noch Boolesche Ausdrücke mitTrue oder False als Werten.Die einfachsten Booleschen Ausdrücke sind Vergleiche mit demGleichheitsoperator ==.

Die Werte True und False gehören zum Typ bool.Arithmetische Operationen konvertieren Boolesche Werte automatisch nachint (False 7→ 0, True 7→ 1):

Python-Interpreter>>> 42 == 42True>>> 'egg' == 'spam'False>>>

type('egg' == 'spam')<class 'bool'>>>> True + True2

6. November 20189 P. Thiemann – Info I 4 / 39

Page 7: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Der Typ bool

Neben arithmetischen Ausdrücken gibt es noch Boolesche Ausdrücke mitTrue oder False als Werten.Die einfachsten Booleschen Ausdrücke sind Vergleiche mit demGleichheitsoperator ==.Die Werte True und False gehören zum Typ bool.

Arithmetische Operationen konvertieren Boolesche Werte automatisch nachint (False 7→ 0, True 7→ 1):

Python-Interpreter>>> 42 == 42True>>> 'egg' == 'spam'False>>> type('egg' == 'spam')

<class 'bool'>>>> True + True2

6. November 20189 P. Thiemann – Info I 4 / 39

Page 8: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Der Typ bool

Neben arithmetischen Ausdrücken gibt es noch Boolesche Ausdrücke mitTrue oder False als Werten.Die einfachsten Booleschen Ausdrücke sind Vergleiche mit demGleichheitsoperator ==.Die Werte True und False gehören zum Typ bool.

Arithmetische Operationen konvertieren Boolesche Werte automatisch nachint (False 7→ 0, True 7→ 1):

Python-Interpreter>>> 42 == 42True>>> 'egg' == 'spam'False>>> type('egg' == 'spam')<class 'bool'>>>>

True + True2

6. November 20189 P. Thiemann – Info I 4 / 39

Page 9: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Der Typ bool

Neben arithmetischen Ausdrücken gibt es noch Boolesche Ausdrücke mitTrue oder False als Werten.Die einfachsten Booleschen Ausdrücke sind Vergleiche mit demGleichheitsoperator ==.Die Werte True und False gehören zum Typ bool.Arithmetische Operationen konvertieren Boolesche Werte automatisch nachint (False 7→ 0, True 7→ 1):

Python-Interpreter>>> 42 == 42True>>> 'egg' == 'spam'False>>> type('egg' == 'spam')<class 'bool'>>>> True + True26. November 20189 P. Thiemann – Info I 4 / 39

Page 10: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Vergleichsoperatoren

Es gibt die folgenden Vergleichsoperatoren:Syntax Bedeutungx == y Ist x gleich y?x != y Ist x ungleich y?x > y Ist x echt größer als y?x < y Ist x echt kleiner als y?x >= y Ist x größer oder gleich y?x <= y Ist x kleiner oder gleich y?

Python-Interpreter>>> 2.1 - 2.0 > 0.1True>>> 2 - 1 < 1False>>> False < TrueTrue

6. November 20189 P. Thiemann – Info I 5 / 39

Page 11: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Vergleichsoperatoren

Es gibt die folgenden Vergleichsoperatoren:Syntax Bedeutungx == y Ist x gleich y?x != y Ist x ungleich y?x > y Ist x echt größer als y?x < y Ist x echt kleiner als y?x >= y Ist x größer oder gleich y?x <= y Ist x kleiner oder gleich y?

Python-Interpreter>>>

2.1 - 2.0 > 0.1True>>> 2 - 1 < 1False>>> False < TrueTrue

6. November 20189 P. Thiemann – Info I 5 / 39

Page 12: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Vergleichsoperatoren

Es gibt die folgenden Vergleichsoperatoren:Syntax Bedeutungx == y Ist x gleich y?x != y Ist x ungleich y?x > y Ist x echt größer als y?x < y Ist x echt kleiner als y?x >= y Ist x größer oder gleich y?x <= y Ist x kleiner oder gleich y?

Python-Interpreter>>> 2.1 - 2.0 > 0.1

True>>> 2 - 1 < 1False>>> False < TrueTrue

6. November 20189 P. Thiemann – Info I 5 / 39

Page 13: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Vergleichsoperatoren

Es gibt die folgenden Vergleichsoperatoren:Syntax Bedeutungx == y Ist x gleich y?x != y Ist x ungleich y?x > y Ist x echt größer als y?x < y Ist x echt kleiner als y?x >= y Ist x größer oder gleich y?x <= y Ist x kleiner oder gleich y?

Python-Interpreter>>> 2.1 - 2.0 > 0.1True>>>

2 - 1 < 1False>>> False < TrueTrue

6. November 20189 P. Thiemann – Info I 5 / 39

Page 14: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Vergleichsoperatoren

Es gibt die folgenden Vergleichsoperatoren:Syntax Bedeutungx == y Ist x gleich y?x != y Ist x ungleich y?x > y Ist x echt größer als y?x < y Ist x echt kleiner als y?x >= y Ist x größer oder gleich y?x <= y Ist x kleiner oder gleich y?

Python-Interpreter>>> 2.1 - 2.0 > 0.1True>>> 2 - 1 < 1

False>>> False < TrueTrue

6. November 20189 P. Thiemann – Info I 5 / 39

Page 15: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Vergleichsoperatoren

Es gibt die folgenden Vergleichsoperatoren:Syntax Bedeutungx == y Ist x gleich y?x != y Ist x ungleich y?x > y Ist x echt größer als y?x < y Ist x echt kleiner als y?x >= y Ist x größer oder gleich y?x <= y Ist x kleiner oder gleich y?

Python-Interpreter>>> 2.1 - 2.0 > 0.1True>>> 2 - 1 < 1False>>>

False < TrueTrue

6. November 20189 P. Thiemann – Info I 5 / 39

Page 16: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Vergleichsoperatoren

Es gibt die folgenden Vergleichsoperatoren:Syntax Bedeutungx == y Ist x gleich y?x != y Ist x ungleich y?x > y Ist x echt größer als y?x < y Ist x echt kleiner als y?x >= y Ist x größer oder gleich y?x <= y Ist x kleiner oder gleich y?

Python-Interpreter>>> 2.1 - 2.0 > 0.1True>>> 2 - 1 < 1False>>> False < True

True

6. November 20189 P. Thiemann – Info I 5 / 39

Page 17: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Vergleichsoperatoren

Es gibt die folgenden Vergleichsoperatoren:Syntax Bedeutungx == y Ist x gleich y?x != y Ist x ungleich y?x > y Ist x echt größer als y?x < y Ist x echt kleiner als y?x >= y Ist x größer oder gleich y?x <= y Ist x kleiner oder gleich y?

Python-Interpreter>>> 2.1 - 2.0 > 0.1True>>> 2 - 1 < 1False>>> False < TrueTrue6. November 20189 P. Thiemann – Info I 5 / 39

Page 18: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Stringvergleich

Strings werden anhand der lexikographischen Ordnung verglichen, wobei fürEinzelzeichen der Unicode-Wert (Ergebnis der ord-Funktion) benutzt wird.

Python-Interpreter>>> 'anton' < 'antonia'True>>> 'anton' < 'berta'True>>> 'anton' < 'ulf'True>>> 'antonia' < 'antonella'False

6. November 20189 P. Thiemann – Info I 6 / 39

Page 19: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Stringvergleich

Strings werden anhand der lexikographischen Ordnung verglichen, wobei fürEinzelzeichen der Unicode-Wert (Ergebnis der ord-Funktion) benutzt wird.

Python-Interpreter>>> 'anton' < 'antonia'

True>>> 'anton' < 'berta'True>>> 'anton' < 'ulf'True>>> 'antonia' < 'antonella'False

6. November 20189 P. Thiemann – Info I 6 / 39

Page 20: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Stringvergleich

Strings werden anhand der lexikographischen Ordnung verglichen, wobei fürEinzelzeichen der Unicode-Wert (Ergebnis der ord-Funktion) benutzt wird.

Python-Interpreter>>> 'anton' < 'antonia'True>>>

'anton' < 'berta'True>>> 'anton' < 'ulf'True>>> 'antonia' < 'antonella'False

6. November 20189 P. Thiemann – Info I 6 / 39

Page 21: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Stringvergleich

Strings werden anhand der lexikographischen Ordnung verglichen, wobei fürEinzelzeichen der Unicode-Wert (Ergebnis der ord-Funktion) benutzt wird.

Python-Interpreter>>> 'anton' < 'antonia'True>>> 'anton' < 'berta'

True>>> 'anton' < 'ulf'True>>> 'antonia' < 'antonella'False

6. November 20189 P. Thiemann – Info I 6 / 39

Page 22: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Stringvergleich

Strings werden anhand der lexikographischen Ordnung verglichen, wobei fürEinzelzeichen der Unicode-Wert (Ergebnis der ord-Funktion) benutzt wird.

Python-Interpreter>>> 'anton' < 'antonia'True>>> 'anton' < 'berta'True>>>

'anton' < 'ulf'True>>> 'antonia' < 'antonella'False

6. November 20189 P. Thiemann – Info I 6 / 39

Page 23: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Stringvergleich

Strings werden anhand der lexikographischen Ordnung verglichen, wobei fürEinzelzeichen der Unicode-Wert (Ergebnis der ord-Funktion) benutzt wird.

Python-Interpreter>>> 'anton' < 'antonia'True>>> 'anton' < 'berta'True>>> 'anton' < 'ulf'

True>>> 'antonia' < 'antonella'False

6. November 20189 P. Thiemann – Info I 6 / 39

Page 24: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Stringvergleich

Strings werden anhand der lexikographischen Ordnung verglichen, wobei fürEinzelzeichen der Unicode-Wert (Ergebnis der ord-Funktion) benutzt wird.

Python-Interpreter>>> 'anton' < 'antonia'True>>> 'anton' < 'berta'True>>> 'anton' < 'ulf'True>>>

'antonia' < 'antonella'False

6. November 20189 P. Thiemann – Info I 6 / 39

Page 25: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Stringvergleich

Strings werden anhand der lexikographischen Ordnung verglichen, wobei fürEinzelzeichen der Unicode-Wert (Ergebnis der ord-Funktion) benutzt wird.

Python-Interpreter>>> 'anton' < 'antonia'True>>> 'anton' < 'berta'True>>> 'anton' < 'ulf'True>>> 'antonia' < 'antonella'

False

6. November 20189 P. Thiemann – Info I 6 / 39

Page 26: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Stringvergleich

Strings werden anhand der lexikographischen Ordnung verglichen, wobei fürEinzelzeichen der Unicode-Wert (Ergebnis der ord-Funktion) benutzt wird.

Python-Interpreter>>> 'anton' < 'antonia'True>>> 'anton' < 'berta'True>>> 'anton' < 'ulf'True>>> 'antonia' < 'antonella'False

6. November 20189 P. Thiemann – Info I 6 / 39

Page 27: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Stringvergleich

Algorithmus: Lexikogaphische Ordnung (grob)Eingabe: zwei Strings a und bAusgabe: ist a≤ b in der lexikographischen Ordnung?

1 Ist a ein Präfix von b?Kann b = a + b′ geschrieben werden, wobei b′ ein beliebiger String ist?

2 Falls ja, ist das Ergebnis True.3 Andernfalls suche das längste gemeinsame Präfix c von a und b.

Für den String c gilt, dass a = c + a′ und b = c + b′ und a′ und b′ fangen mitunterschiedlichen Zeichen ak+1 und bk+1 an.

4 Falls ak+1 < bk+1, so ist das Ergebnis True sonst False.

6. November 20189 P. Thiemann – Info I 7 / 39

Page 28: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Stringvergleich

Algorithmus: Lexikogaphische Ordnung (fein)Eingabe: zwei Strings~a = ”a1a2 . . .am” und~b = ”b1b2 . . .bn” der Längen m,n≥ 0.Ausgabe: ist a≤ b in der lexikographischen Ordnung?

Suche das längste gemeinsame Präfix1 Setze k = 02 Falls k ≥m, ist das Ergebnis True (~a ist Präfix von~b)3 Falls k ≥ n, ist das Ergebnis False (~b ist Präfix von~a)4 Falls ak+1 == bk+1, setze k = k +1 und weiter bei 2

Längstes gemeinsames Präfix ist ”a1a2 . . .ak”5 Falls ak+1 < bk+1, ist das Ergebnis True sonst False

6. November 20189 P. Thiemann – Info I 8 / 39

Page 29: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

MathematischeDefinition: Lexikographische Ordnung

GegebenZwei Strings der Längen m,n≥ 0:

~a = ”a1a2 . . .am” ~b = ”b1b2 . . .bn”

~a≤~b in der lexikographischen Ordnung, fallsEs gibt 0≤ k ≤min(m,n), so dass

a1 = b1, . . . , ak = bk und~a = ”a1a2 . . .akak+1 . . .am” ~b = ”a1a2 . . .akbk+1 . . .bn”

entweder k = m~a = ”a1a2 . . .am” ~b = ”a1a2 . . .ambm+1 . . .bn”

oder k < m und ak+1 < bk+1.

6. November 20189 P. Thiemann – Info I 9 / 39

Page 30: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

MathematischeDefinition: Lexikographische Ordnung

GegebenZwei Strings der Längen m,n≥ 0:

~a = ”a1a2 . . .am” ~b = ”b1b2 . . .bn”

~a≤~b in der lexikographischen Ordnung, fallsEs gibt 0≤ k ≤min(m,n), so dass

a1 = b1, . . . , ak = bk und~a = ”a1a2 . . .akak+1 . . .am” ~b = ”a1a2 . . .akbk+1 . . .bn”

entweder k = m~a = ”a1a2 . . .am” ~b = ”a1a2 . . .ambm+1 . . .bn”

oder k < m und ak+1 < bk+1.

6. November 20189 P. Thiemann – Info I 9 / 39

Page 31: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Vergleich unterschiedlicher Typen

Werte unvergleichbarer Typen sind ungleich.

Bei den Anordnungsrelationen gibt es einen Fehler, wenn die Typen nichtzusammenpassen!

Python-Interpreter>>>

42 == 'zweiundvierzig'False>>> 41 < '42'Traceback (most recent call last): ...TypeError: unorderable types: int() < str()

6. November 20189 P. Thiemann – Info I 10 / 39

Page 32: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Vergleich unterschiedlicher Typen

Werte unvergleichbarer Typen sind ungleich.

Bei den Anordnungsrelationen gibt es einen Fehler, wenn die Typen nichtzusammenpassen!

Python-Interpreter>>> 42 == 'zweiundvierzig'

False>>> 41 < '42'Traceback (most recent call last): ...TypeError: unorderable types: int() < str()

6. November 20189 P. Thiemann – Info I 10 / 39

Page 33: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Vergleich unterschiedlicher Typen

Werte unvergleichbarer Typen sind ungleich.

Bei den Anordnungsrelationen gibt es einen Fehler, wenn die Typen nichtzusammenpassen!

Python-Interpreter>>> 42 == 'zweiundvierzig'False>>>

41 < '42'Traceback (most recent call last): ...TypeError: unorderable types: int() < str()

6. November 20189 P. Thiemann – Info I 10 / 39

Page 34: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Vergleich unterschiedlicher Typen

Werte unvergleichbarer Typen sind ungleich.Bei den Anordnungsrelationen gibt es einen Fehler, wenn die Typen nichtzusammenpassen!

Python-Interpreter>>> 42 == 'zweiundvierzig'False>>> 41 < '42'

Traceback (most recent call last): ...TypeError: unorderable types: int() < str()

6. November 20189 P. Thiemann – Info I 10 / 39

Page 35: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Vergleich unterschiedlicher Typen

Werte unvergleichbarer Typen sind ungleich.Bei den Anordnungsrelationen gibt es einen Fehler, wenn die Typen nichtzusammenpassen!

Python-Interpreter>>> 42 == 'zweiundvierzig'False>>> 41 < '42'Traceback (most recent call last): ...TypeError: unorderable types: int() < str()

6. November 20189 P. Thiemann – Info I 10 / 39

Page 36: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Logische Operatoren

Es gibt die folgenden logischen Operatoren: or, and, not – mit aufsteigenderOperatorpräzedenz.

Wie die Bitoperationen mit (False 7→ 0, True 7→ 1), d.h.

x < 10 or y > 100 hat den Wert True, wenn x kleiner als 10 ist oder wenny größer als 100 ist.1 <= x and x <= 10 hat den Wert True, wenn 1≤ x und x ≤ 10, d.h. wennx zwischen 1 und 10 (inklusive) liegt.Alternative Schreibweise dafür: 1 <= x <= 10.not(x < y) ist True wenn x nicht kleiner als y ist.

Nullwerte sind None, 0, 0.0, (0 + 0j) und ''. Sie werden wie Falsebehandelt, alle anderen Werte wie True!Die Auswertung der logischen Operatoren endet, sobald das Ergebnis klar ist.

6. November 20189 P. Thiemann – Info I 11 / 39

Page 37: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Logische Operatoren

Es gibt die folgenden logischen Operatoren: or, and, not – mit aufsteigenderOperatorpräzedenz.Wie die Bitoperationen mit (False 7→ 0, True 7→ 1), d.h.

x < 10 or y > 100 hat den Wert True, wenn x kleiner als 10 ist oder wenny größer als 100 ist.1 <= x and x <= 10 hat den Wert True, wenn 1≤ x und x ≤ 10, d.h. wennx zwischen 1 und 10 (inklusive) liegt.Alternative Schreibweise dafür: 1 <= x <= 10.not(x < y) ist True wenn x nicht kleiner als y ist.

Nullwerte sind None, 0, 0.0, (0 + 0j) und ''. Sie werden wie Falsebehandelt, alle anderen Werte wie True!Die Auswertung der logischen Operatoren endet, sobald das Ergebnis klar ist.

6. November 20189 P. Thiemann – Info I 11 / 39

Page 38: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Logische Operatoren

Es gibt die folgenden logischen Operatoren: or, and, not – mit aufsteigenderOperatorpräzedenz.Wie die Bitoperationen mit (False 7→ 0, True 7→ 1), d.h.

x < 10 or y > 100 hat den Wert True, wenn x kleiner als 10 ist oder wenny größer als 100 ist.

1 <= x and x <= 10 hat den Wert True, wenn 1≤ x und x ≤ 10, d.h. wennx zwischen 1 und 10 (inklusive) liegt.Alternative Schreibweise dafür: 1 <= x <= 10.not(x < y) ist True wenn x nicht kleiner als y ist.

Nullwerte sind None, 0, 0.0, (0 + 0j) und ''. Sie werden wie Falsebehandelt, alle anderen Werte wie True!Die Auswertung der logischen Operatoren endet, sobald das Ergebnis klar ist.

6. November 20189 P. Thiemann – Info I 11 / 39

Page 39: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Logische Operatoren

Es gibt die folgenden logischen Operatoren: or, and, not – mit aufsteigenderOperatorpräzedenz.Wie die Bitoperationen mit (False 7→ 0, True 7→ 1), d.h.

x < 10 or y > 100 hat den Wert True, wenn x kleiner als 10 ist oder wenny größer als 100 ist.1 <= x and x <= 10 hat den Wert True, wenn 1≤ x und x ≤ 10, d.h. wennx zwischen 1 und 10 (inklusive) liegt.

Alternative Schreibweise dafür: 1 <= x <= 10.not(x < y) ist True wenn x nicht kleiner als y ist.

Nullwerte sind None, 0, 0.0, (0 + 0j) und ''. Sie werden wie Falsebehandelt, alle anderen Werte wie True!Die Auswertung der logischen Operatoren endet, sobald das Ergebnis klar ist.

6. November 20189 P. Thiemann – Info I 11 / 39

Page 40: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Logische Operatoren

Es gibt die folgenden logischen Operatoren: or, and, not – mit aufsteigenderOperatorpräzedenz.Wie die Bitoperationen mit (False 7→ 0, True 7→ 1), d.h.

x < 10 or y > 100 hat den Wert True, wenn x kleiner als 10 ist oder wenny größer als 100 ist.1 <= x and x <= 10 hat den Wert True, wenn 1≤ x und x ≤ 10, d.h. wennx zwischen 1 und 10 (inklusive) liegt.Alternative Schreibweise dafür: 1 <= x <= 10.

not(x < y) ist True wenn x nicht kleiner als y ist.Nullwerte sind None, 0, 0.0, (0 + 0j) und ''. Sie werden wie Falsebehandelt, alle anderen Werte wie True!Die Auswertung der logischen Operatoren endet, sobald das Ergebnis klar ist.

6. November 20189 P. Thiemann – Info I 11 / 39

Page 41: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Logische Operatoren

Es gibt die folgenden logischen Operatoren: or, and, not – mit aufsteigenderOperatorpräzedenz.Wie die Bitoperationen mit (False 7→ 0, True 7→ 1), d.h.

x < 10 or y > 100 hat den Wert True, wenn x kleiner als 10 ist oder wenny größer als 100 ist.1 <= x and x <= 10 hat den Wert True, wenn 1≤ x und x ≤ 10, d.h. wennx zwischen 1 und 10 (inklusive) liegt.Alternative Schreibweise dafür: 1 <= x <= 10.not(x < y) ist True wenn x nicht kleiner als y ist.

Nullwerte sind None, 0, 0.0, (0 + 0j) und ''. Sie werden wie Falsebehandelt, alle anderen Werte wie True!Die Auswertung der logischen Operatoren endet, sobald das Ergebnis klar ist.

6. November 20189 P. Thiemann – Info I 11 / 39

Page 42: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Logische Operatoren

Es gibt die folgenden logischen Operatoren: or, and, not – mit aufsteigenderOperatorpräzedenz.Wie die Bitoperationen mit (False 7→ 0, True 7→ 1), d.h.

x < 10 or y > 100 hat den Wert True, wenn x kleiner als 10 ist oder wenny größer als 100 ist.1 <= x and x <= 10 hat den Wert True, wenn 1≤ x und x ≤ 10, d.h. wennx zwischen 1 und 10 (inklusive) liegt.Alternative Schreibweise dafür: 1 <= x <= 10.not(x < y) ist True wenn x nicht kleiner als y ist.

Nullwerte sind None, 0, 0.0, (0 + 0j) und ''. Sie werden wie Falsebehandelt, alle anderen Werte wie True!

Die Auswertung der logischen Operatoren endet, sobald das Ergebnis klar ist.

6. November 20189 P. Thiemann – Info I 11 / 39

Page 43: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Logische Operatoren

Es gibt die folgenden logischen Operatoren: or, and, not – mit aufsteigenderOperatorpräzedenz.Wie die Bitoperationen mit (False 7→ 0, True 7→ 1), d.h.

x < 10 or y > 100 hat den Wert True, wenn x kleiner als 10 ist oder wenny größer als 100 ist.1 <= x and x <= 10 hat den Wert True, wenn 1≤ x und x ≤ 10, d.h. wennx zwischen 1 und 10 (inklusive) liegt.Alternative Schreibweise dafür: 1 <= x <= 10.not(x < y) ist True wenn x nicht kleiner als y ist.

Nullwerte sind None, 0, 0.0, (0 + 0j) und ''. Sie werden wie Falsebehandelt, alle anderen Werte wie True!Die Auswertung der logischen Operatoren endet, sobald das Ergebnis klar ist.

6. November 20189 P. Thiemann – Info I 11 / 39

Page 44: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Logische Operatoren in Aktion

Python-Interpreter>>> 1 < 5 < 10

True>>> 5 < 1 or 'spam' < 'egg'False>>> 'spam' or True'spam'>>> '' or 'default''default'>>> 'good night' and 'ding ding ding''ding ding ding'>>> 0 and 10 < 1000>>> not 'spam' and (None or 0.0 or 10 < 100)False

6. November 20189 P. Thiemann – Info I 12 / 39

Page 45: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Logische Operatoren in Aktion

Python-Interpreter>>> 1 < 5 < 10True>>>

5 < 1 or 'spam' < 'egg'False>>> 'spam' or True'spam'>>> '' or 'default''default'>>> 'good night' and 'ding ding ding''ding ding ding'>>> 0 and 10 < 1000>>> not 'spam' and (None or 0.0 or 10 < 100)False

6. November 20189 P. Thiemann – Info I 12 / 39

Page 46: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Logische Operatoren in Aktion

Python-Interpreter>>> 1 < 5 < 10True>>> 5 < 1 or 'spam' < 'egg'

False>>> 'spam' or True'spam'>>> '' or 'default''default'>>> 'good night' and 'ding ding ding''ding ding ding'>>> 0 and 10 < 1000>>> not 'spam' and (None or 0.0 or 10 < 100)False

6. November 20189 P. Thiemann – Info I 12 / 39

Page 47: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Logische Operatoren in Aktion

Python-Interpreter>>> 1 < 5 < 10True>>> 5 < 1 or 'spam' < 'egg'False>>>

'spam' or True'spam'>>> '' or 'default''default'>>> 'good night' and 'ding ding ding''ding ding ding'>>> 0 and 10 < 1000>>> not 'spam' and (None or 0.0 or 10 < 100)False

6. November 20189 P. Thiemann – Info I 12 / 39

Page 48: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Logische Operatoren in Aktion

Python-Interpreter>>> 1 < 5 < 10True>>> 5 < 1 or 'spam' < 'egg'False>>> 'spam' or True

'spam'>>> '' or 'default''default'>>> 'good night' and 'ding ding ding''ding ding ding'>>> 0 and 10 < 1000>>> not 'spam' and (None or 0.0 or 10 < 100)False

6. November 20189 P. Thiemann – Info I 12 / 39

Page 49: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Logische Operatoren in Aktion

Python-Interpreter>>> 1 < 5 < 10True>>> 5 < 1 or 'spam' < 'egg'False>>> 'spam' or True'spam'>>>

'' or 'default''default'>>> 'good night' and 'ding ding ding''ding ding ding'>>> 0 and 10 < 1000>>> not 'spam' and (None or 0.0 or 10 < 100)False

6. November 20189 P. Thiemann – Info I 12 / 39

Page 50: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Logische Operatoren in Aktion

Python-Interpreter>>> 1 < 5 < 10True>>> 5 < 1 or 'spam' < 'egg'False>>> 'spam' or True'spam'>>> '' or 'default'

'default'>>> 'good night' and 'ding ding ding''ding ding ding'>>> 0 and 10 < 1000>>> not 'spam' and (None or 0.0 or 10 < 100)False

6. November 20189 P. Thiemann – Info I 12 / 39

Page 51: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Logische Operatoren in Aktion

Python-Interpreter>>> 1 < 5 < 10True>>> 5 < 1 or 'spam' < 'egg'False>>> 'spam' or True'spam'>>> '' or 'default''default'>>>

'good night' and 'ding ding ding''ding ding ding'>>> 0 and 10 < 1000>>> not 'spam' and (None or 0.0 or 10 < 100)False

6. November 20189 P. Thiemann – Info I 12 / 39

Page 52: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Logische Operatoren in Aktion

Python-Interpreter>>> 1 < 5 < 10True>>> 5 < 1 or 'spam' < 'egg'False>>> 'spam' or True'spam'>>> '' or 'default''default'>>> 'good night' and 'ding ding ding'

'ding ding ding'>>> 0 and 10 < 1000>>> not 'spam' and (None or 0.0 or 10 < 100)False

6. November 20189 P. Thiemann – Info I 12 / 39

Page 53: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Logische Operatoren in Aktion

Python-Interpreter>>> 1 < 5 < 10True>>> 5 < 1 or 'spam' < 'egg'False>>> 'spam' or True'spam'>>> '' or 'default''default'>>> 'good night' and 'ding ding ding''ding ding ding'>>>

0 and 10 < 1000>>> not 'spam' and (None or 0.0 or 10 < 100)False

6. November 20189 P. Thiemann – Info I 12 / 39

Page 54: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Logische Operatoren in Aktion

Python-Interpreter>>> 1 < 5 < 10True>>> 5 < 1 or 'spam' < 'egg'False>>> 'spam' or True'spam'>>> '' or 'default''default'>>> 'good night' and 'ding ding ding''ding ding ding'>>> 0 and 10 < 100

0>>> not 'spam' and (None or 0.0 or 10 < 100)False

6. November 20189 P. Thiemann – Info I 12 / 39

Page 55: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Logische Operatoren in Aktion

Python-Interpreter>>> 1 < 5 < 10True>>> 5 < 1 or 'spam' < 'egg'False>>> 'spam' or True'spam'>>> '' or 'default''default'>>> 'good night' and 'ding ding ding''ding ding ding'>>> 0 and 10 < 1000>>>

not 'spam' and (None or 0.0 or 10 < 100)False

6. November 20189 P. Thiemann – Info I 12 / 39

Page 56: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Logische Operatoren in Aktion

Python-Interpreter>>> 1 < 5 < 10True>>> 5 < 1 or 'spam' < 'egg'False>>> 'spam' or True'spam'>>> '' or 'default''default'>>> 'good night' and 'ding ding ding''ding ding ding'>>> 0 and 10 < 1000>>> not 'spam' and (None or 0.0 or 10 < 100)

False

6. November 20189 P. Thiemann – Info I 12 / 39

Page 57: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

BedingungenTyp bool

Vergleichsoperatio-nen

LogischeOperatoren

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Logische Operatoren in Aktion

Python-Interpreter>>> 1 < 5 < 10True>>> 5 < 1 or 'spam' < 'egg'False>>> 'spam' or True'spam'>>> '' or 'default''default'>>> 'good night' and 'ding ding ding''ding ding ding'>>> 0 and 10 < 1000>>> not 'spam' and (None or 0.0 or 10 < 100)False

6. November 20189 P. Thiemann – Info I 12 / 39

Page 58: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

Bedingungen

Bedingte An-weisungenif-Anweisung

if-else-Anweisung

elif-Anweisung

Anwendung

Zusammen-fassung

Bedingte Anweisungen

6. November 20189 P. Thiemann – Info I 13 / 39

Page 59: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

Bedingungen

Bedingte An-weisungenif-Anweisung

if-else-Anweisung

elif-Anweisung

Anwendung

Zusammen-fassung

Bedingte Ausführung

Bisher wurde jede eingegebene Anweisung ausgeführt.Die bedingte Anweisung (Konditional, if-Anweisung) ermöglicht es,Anweisungen nur unter bestimmten Bedingungen auszuführen.

� �def check(x):

if x > 0:print ("x␣ist␣strikt␣positiv")� �

Python-Interpreter>>> from checker import check>>> x = 3>>> check(x)x ist strikt positiv>>> x = 0>>> check(x)>>>

6. November 20189 P. Thiemann – Info I 15 / 39

Page 60: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

Bedingungen

Bedingte An-weisungenif-Anweisung

if-else-Anweisung

elif-Anweisung

Anwendung

Zusammen-fassung

Bedingte Ausführung

Bisher wurde jede eingegebene Anweisung ausgeführt.Die bedingte Anweisung (Konditional, if-Anweisung) ermöglicht es,Anweisungen nur unter bestimmten Bedingungen auszuführen.� �def check(x):

if x > 0:print ("x␣ist␣strikt␣positiv")� �

Python-Interpreter>>> from checker import check>>> x = 3>>> check(x)x ist strikt positiv>>> x = 0>>> check(x)>>>

6. November 20189 P. Thiemann – Info I 15 / 39

Page 61: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

Bedingungen

Bedingte An-weisungenif-Anweisung

if-else-Anweisung

elif-Anweisung

Anwendung

Zusammen-fassung

Bedingte Ausführung

Bisher wurde jede eingegebene Anweisung ausgeführt.Die bedingte Anweisung (Konditional, if-Anweisung) ermöglicht es,Anweisungen nur unter bestimmten Bedingungen auszuführen.� �def check(x):

if x > 0:print ("x␣ist␣strikt␣positiv")� �

Python-Interpreter>>> from checker import check>>> x = 3>>> check(x)

x ist strikt positiv>>> x = 0>>> check(x)>>>

6. November 20189 P. Thiemann – Info I 15 / 39

Page 62: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

Bedingungen

Bedingte An-weisungenif-Anweisung

if-else-Anweisung

elif-Anweisung

Anwendung

Zusammen-fassung

Bedingte Ausführung

Bisher wurde jede eingegebene Anweisung ausgeführt.Die bedingte Anweisung (Konditional, if-Anweisung) ermöglicht es,Anweisungen nur unter bestimmten Bedingungen auszuführen.� �def check(x):

if x > 0:print ("x␣ist␣strikt␣positiv")� �

Python-Interpreter>>> from checker import check>>> x = 3>>> check(x)x ist strikt positiv>>>

x = 0>>> check(x)>>>

6. November 20189 P. Thiemann – Info I 15 / 39

Page 63: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

Bedingungen

Bedingte An-weisungenif-Anweisung

if-else-Anweisung

elif-Anweisung

Anwendung

Zusammen-fassung

Bedingte Ausführung

Bisher wurde jede eingegebene Anweisung ausgeführt.Die bedingte Anweisung (Konditional, if-Anweisung) ermöglicht es,Anweisungen nur unter bestimmten Bedingungen auszuführen.� �def check(x):

if x > 0:print ("x␣ist␣strikt␣positiv")� �

Python-Interpreter>>> from checker import check>>> x = 3>>> check(x)x ist strikt positiv>>> x = 0>>> check(x)

>>>

6. November 20189 P. Thiemann – Info I 15 / 39

Page 64: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

Bedingungen

Bedingte An-weisungenif-Anweisung

if-else-Anweisung

elif-Anweisung

Anwendung

Zusammen-fassung

Bedingte Ausführung

Bisher wurde jede eingegebene Anweisung ausgeführt.Die bedingte Anweisung (Konditional, if-Anweisung) ermöglicht es,Anweisungen nur unter bestimmten Bedingungen auszuführen.� �def check(x):

if x > 0:print ("x␣ist␣strikt␣positiv")� �

Python-Interpreter>>> from checker import check>>> x = 3>>> check(x)x ist strikt positiv>>> x = 0>>> check(x)>>>6. November 20189 P. Thiemann – Info I 15 / 39

Page 65: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

Bedingungen

Bedingte An-weisungenif-Anweisung

if-else-Anweisung

elif-Anweisung

Anwendung

Zusammen-fassung

If-else

Die if-else-Anweisung ermöglicht es, durch eine Bedingung zwischen zweiAnweisungen auszuwählen.

Der else-Zweig wird ausgewertet, wenn die Bedingung nicht erfüllt ist.� �def even_odd(x):

if x % 2 == 0:print('x␣ist␣gerade ')

else:print('x␣ist␣ungerade ')� �

Python-Interpreter>>> from checker import even_odd>>> x = 3>>> even_odd(x)x ist ungerade

6. November 20189 P. Thiemann – Info I 16 / 39

Page 66: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

Bedingungen

Bedingte An-weisungenif-Anweisung

if-else-Anweisung

elif-Anweisung

Anwendung

Zusammen-fassung

If-else

Die if-else-Anweisung ermöglicht es, durch eine Bedingung zwischen zweiAnweisungen auszuwählen.Der else-Zweig wird ausgewertet, wenn die Bedingung nicht erfüllt ist.

� �def even_odd(x):

if x % 2 == 0:print('x␣ist␣gerade ')

else:print('x␣ist␣ungerade ')� �

Python-Interpreter>>> from checker import even_odd>>> x = 3>>> even_odd(x)x ist ungerade

6. November 20189 P. Thiemann – Info I 16 / 39

Page 67: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

Bedingungen

Bedingte An-weisungenif-Anweisung

if-else-Anweisung

elif-Anweisung

Anwendung

Zusammen-fassung

If-else

Die if-else-Anweisung ermöglicht es, durch eine Bedingung zwischen zweiAnweisungen auszuwählen.Der else-Zweig wird ausgewertet, wenn die Bedingung nicht erfüllt ist.� �def even_odd(x):

if x % 2 == 0:print('x␣ist␣gerade ')

else:print('x␣ist␣ungerade ')� �

Python-Interpreter>>> from checker import even_odd>>> x = 3>>> even_odd(x)x ist ungerade

6. November 20189 P. Thiemann – Info I 16 / 39

Page 68: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

Bedingungen

Bedingte An-weisungenif-Anweisung

if-else-Anweisung

elif-Anweisung

Anwendung

Zusammen-fassung

If-else

Die if-else-Anweisung ermöglicht es, durch eine Bedingung zwischen zweiAnweisungen auszuwählen.Der else-Zweig wird ausgewertet, wenn die Bedingung nicht erfüllt ist.� �def even_odd(x):

if x % 2 == 0:print('x␣ist␣gerade ')

else:print('x␣ist␣ungerade ')� �

Python-Interpreter>>> from checker import even_odd>>> x = 3>>> even_odd(x)

x ist ungerade

6. November 20189 P. Thiemann – Info I 16 / 39

Page 69: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

Bedingungen

Bedingte An-weisungenif-Anweisung

if-else-Anweisung

elif-Anweisung

Anwendung

Zusammen-fassung

If-else

Die if-else-Anweisung ermöglicht es, durch eine Bedingung zwischen zweiAnweisungen auszuwählen.Der else-Zweig wird ausgewertet, wenn die Bedingung nicht erfüllt ist.� �def even_odd(x):

if x % 2 == 0:print('x␣ist␣gerade ')

else:print('x␣ist␣ungerade ')� �

Python-Interpreter>>> from checker import even_odd>>> x = 3>>> even_odd(x)x ist ungerade

6. November 20189 P. Thiemann – Info I 16 / 39

Page 70: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

Bedingungen

Bedingte An-weisungenif-Anweisung

if-else-Anweisung

elif-Anweisung

Anwendung

Zusammen-fassung

Verkettete bedingte Anweisungen

Eine verkettete bedingte Anweisung kann mehr als zwei Fälle behandeln.

� �def compare(x, y):

if x < y:print('x␣ist␣kleiner␣als␣y')

elif x > y:print('x␣ist␣größer␣als␣y')

else:print('x␣und␣y␣sind␣gleich ')� �

Python-Interpreter>>> compare(x = 3, y = 0)x ist größer als y

Die Bedingungen werden der Reihe nach ausgewertet. Der erste Block, dessenBedingung erfüllt ist, wird ausgeführt.

6. November 20189 P. Thiemann – Info I 17 / 39

Page 71: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

Bedingungen

Bedingte An-weisungenif-Anweisung

if-else-Anweisung

elif-Anweisung

Anwendung

Zusammen-fassung

Verkettete bedingte Anweisungen

Eine verkettete bedingte Anweisung kann mehr als zwei Fälle behandeln.� �def compare(x, y):

if x < y:print('x␣ist␣kleiner␣als␣y')

elif x > y:print('x␣ist␣größer␣als␣y')

else:print('x␣und␣y␣sind␣gleich ')� �

Python-Interpreter>>> compare(x = 3, y = 0)x ist größer als y

Die Bedingungen werden der Reihe nach ausgewertet. Der erste Block, dessenBedingung erfüllt ist, wird ausgeführt.

6. November 20189 P. Thiemann – Info I 17 / 39

Page 72: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

Bedingungen

Bedingte An-weisungenif-Anweisung

if-else-Anweisung

elif-Anweisung

Anwendung

Zusammen-fassung

Verkettete bedingte Anweisungen

Eine verkettete bedingte Anweisung kann mehr als zwei Fälle behandeln.� �def compare(x, y):

if x < y:print('x␣ist␣kleiner␣als␣y')

elif x > y:print('x␣ist␣größer␣als␣y')

else:print('x␣und␣y␣sind␣gleich ')� �

Python-Interpreter>>> compare(x = 3, y = 0)

x ist größer als y

Die Bedingungen werden der Reihe nach ausgewertet. Der erste Block, dessenBedingung erfüllt ist, wird ausgeführt.

6. November 20189 P. Thiemann – Info I 17 / 39

Page 73: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

Bedingungen

Bedingte An-weisungenif-Anweisung

if-else-Anweisung

elif-Anweisung

Anwendung

Zusammen-fassung

Verkettete bedingte Anweisungen

Eine verkettete bedingte Anweisung kann mehr als zwei Fälle behandeln.� �def compare(x, y):

if x < y:print('x␣ist␣kleiner␣als␣y')

elif x > y:print('x␣ist␣größer␣als␣y')

else:print('x␣und␣y␣sind␣gleich ')� �

Python-Interpreter>>> compare(x = 3, y = 0)x ist größer als y

Die Bedingungen werden der Reihe nach ausgewertet. Der erste Block, dessenBedingung erfüllt ist, wird ausgeführt.

6. November 20189 P. Thiemann – Info I 17 / 39

Page 74: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

Bedingungen

Bedingte An-weisungenif-Anweisung

if-else-Anweisung

elif-Anweisung

Anwendung

Zusammen-fassung

Verkettete bedingte Anweisungen

Eine verkettete bedingte Anweisung kann mehr als zwei Fälle behandeln.� �def compare(x, y):

if x < y:print('x␣ist␣kleiner␣als␣y')

elif x > y:print('x␣ist␣größer␣als␣y')

else:print('x␣und␣y␣sind␣gleich ')� �

Python-Interpreter>>> compare(x = 3, y = 0)x ist größer als y

Die Bedingungen werden der Reihe nach ausgewertet. Der erste Block, dessenBedingung erfüllt ist, wird ausgeführt.

6. November 20189 P. Thiemann – Info I 17 / 39

Page 75: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

Bedingungen

Bedingte An-weisungenif-Anweisung

if-else-Anweisung

elif-Anweisung

Anwendung

Zusammen-fassung

Geschachtelte Konditionale

Bedingte Anweisungen können geschachtelt werden.Durch die Einrückung ist immer klar, wozu die bedingte Anweisung gehört!� �

def nested(x):if x > 0:

if x > 10:print('successful␣encyclopedia␣salesman ')

else:print('unsuccessful␣encyclopedia␣salesman ')� �

Python-Interpreter>>> nested(x)

>>>

6. November 20189 P. Thiemann – Info I 18 / 39

Page 76: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

Bedingungen

Bedingte An-weisungenif-Anweisung

if-else-Anweisung

elif-Anweisung

Anwendung

Zusammen-fassung

Geschachtelte Konditionale

Bedingte Anweisungen können geschachtelt werden.Durch die Einrückung ist immer klar, wozu die bedingte Anweisung gehört!� �

def nested(x):if x > 0:

if x > 10:print('successful␣encyclopedia␣salesman ')

else:print('unsuccessful␣encyclopedia␣salesman ')� �

Python-Interpreter>>> nested(x)>>>

6. November 20189 P. Thiemann – Info I 18 / 39

Page 77: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

Bedingungen

Bedingte An-weisungenif-Anweisung

if-else-Anweisung

elif-Anweisung

Anwendung

Zusammen-fassung

Sollte die Missachtung der Regeln für die Einrückung einFehler sein?

Ja Nein

6. November 20189 P. Thiemann – Info I 19 / 39

Page 78: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

Bedingungen

Bedingte An-weisungenif-Anweisung

if-else-Anweisung

elif-Anweisung

Anwendung

Zusammen-fassung

Sollte die Missachtung der Regeln für die Einrückung einFehler sein?

Ja Nein

6. November 20189 P. Thiemann – Info I 19 / 39

Page 79: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

Bedingungen

Bedingte An-weisungen

AnwendungAuswerten einesTests

Freizeitpark

Zusammen-fassung

Anwendung

6. November 20189 P. Thiemann – Info I 20 / 39

Page 80: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

Bedingungen

Bedingte An-weisungen

AnwendungAuswerten einesTests

Freizeitpark

Zusammen-fassung

Anwendung — Auswerten eines Tests

6. November 20189 P. Thiemann – Info I 22 / 39

Page 81: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

Bedingungen

Bedingte An-weisungen

AnwendungAuswerten einesTests

Freizeitpark

Zusammen-fassung

Anwendung — Auswerten eines Tests

Bestanden oder nicht?In einem Test kann eine maximale Punktzahl erreicht werden. Ein gewisserProzentsatz an Punkten ist notwendig um den Test zu bestehen.

AufgabeEntwickle eine Funktion, die die Eingaben

maximale Punktzahl,Prozentsatz zum Bestehen undtatsächlich erreichte Punktzahl

nimmt und als Ergebnis entweder 'pass' oder 'fail' liefert.

6. November 20189 P. Thiemann – Info I 23 / 39

Page 82: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

Bedingungen

Bedingte An-weisungen

AnwendungAuswerten einesTests

Freizeitpark

Zusammen-fassung

Anwendung — Auswerten eines Tests

Bestanden oder nicht?In einem Test kann eine maximale Punktzahl erreicht werden. Ein gewisserProzentsatz an Punkten ist notwendig um den Test zu bestehen.

AufgabeEntwickle eine Funktion, die die Eingaben

maximale Punktzahl,Prozentsatz zum Bestehen undtatsächlich erreichte Punktzahl

nimmt und als Ergebnis entweder 'pass' oder 'fail' liefert.

6. November 20189 P. Thiemann – Info I 23 / 39

Page 83: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

Bedingungen

Bedingte An-weisungen

AnwendungAuswerten einesTests

Freizeitpark

Zusammen-fassung

Schritt 1: Bezeichner und Datentypen

AufgabeEntwickle eine Funktion result_for, die die Eingaben

max_points: int maximale Punktzahl,percentage: int Prozentsatz zum Bestehen undpoints: int tatsächlich erreichte Punktzahl

nimmt und als Ergebnis entweder 'pass' oder 'fail' (vom Typ str) liefert.

Bezeichner für Funktion und Parameter festlegenTypen der Parameter angebenTyp des Rückgabewertes angeben

6. November 20189 P. Thiemann – Info I 24 / 39

Page 84: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

Bedingungen

Bedingte An-weisungen

AnwendungAuswerten einesTests

Freizeitpark

Zusammen-fassung

Schritt 2: Funktionsgerüst

� �def result_for(

max_points: int ,percentage: int ,points: int) -> str:

# fill inreturn� �

Funktionsgerüst aufschreiben.Wenn klar ist, dass eine Zeile fortgesetzt werden muss (hier: innerhalb einerParameterliste), wird das durch zusätzliche Einrückung gekennzeichnet.Typen werden durch Typannotationen “: int” für Parameter bzw. “-> str”für das Ergebnis angegeben (ab Python 3.6).

6. November 20189 P. Thiemann – Info I 25 / 39

Page 85: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

Bedingungen

Bedingte An-weisungen

AnwendungAuswerten einesTests

Freizeitpark

Zusammen-fassung

Schritt 3: Beispiele

� �result_for (100, 50, 50) == 'pass'result_for (100, 50, 30) == 'fail'result_for (100, 50, 70) == 'pass'� �

Sinnvolle Beispiele erarbeitenEingaben so wählen, dass alle mögliche Ergebnisse erreicht werden.Randfälle bedenken (z.B. points == max_points, points == 0,percentage == 0, percentage == 100, . . . )

Ergebnisse der Beispiele von Hand ausrechnen!Die Beispiele dienen später als Tests, dass der Code zumindest für dieBeispiele funktioniert.

6. November 20189 P. Thiemann – Info I 26 / 39

Page 86: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

Bedingungen

Bedingte An-weisungen

AnwendungAuswerten einesTests

Freizeitpark

Zusammen-fassung

Schritt 4: Funktionsrumpf ausfüllen

� �def result_for(

max_points: int ,percentage: int ,points: int) -> str:

passed = (points>= max_points * percentage / 100)

if passed:return 'pass'

else:return 'fail'� �

Die Zuweisung an passed erstreckt sich über zwei Zeilen.Dafür muss der Ausdruck rechts geklammert sein.Zeilenumbruch vor dem Operator >=.

6. November 20189 P. Thiemann – Info I 27 / 39

Page 87: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

Bedingungen

Bedingte An-weisungen

AnwendungAuswerten einesTests

Freizeitpark

Zusammen-fassung

Nachspiel

Fertig?

Was ist, wenn

max_points < 0?percentage < 0?percentage > 100?points < 0?points > max_points?

Wollen wir diese Fälle zulassen?

6. November 20189 P. Thiemann – Info I 28 / 39

Page 88: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

Bedingungen

Bedingte An-weisungen

AnwendungAuswerten einesTests

Freizeitpark

Zusammen-fassung

Nachspiel

Fertig?Was ist, wenn

max_points < 0?percentage < 0?percentage > 100?points < 0?points > max_points?

Wollen wir diese Fälle zulassen?

6. November 20189 P. Thiemann – Info I 28 / 39

Page 89: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

Bedingungen

Bedingte An-weisungen

AnwendungAuswerten einesTests

Freizeitpark

Zusammen-fassung

Nachspiel

Fertig?Was ist, wenn

max_points < 0?

percentage < 0?percentage > 100?points < 0?points > max_points?

Wollen wir diese Fälle zulassen?

6. November 20189 P. Thiemann – Info I 28 / 39

Page 90: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

Bedingungen

Bedingte An-weisungen

AnwendungAuswerten einesTests

Freizeitpark

Zusammen-fassung

Nachspiel

Fertig?Was ist, wenn

max_points < 0?percentage < 0?

percentage > 100?points < 0?points > max_points?

Wollen wir diese Fälle zulassen?

6. November 20189 P. Thiemann – Info I 28 / 39

Page 91: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

Bedingungen

Bedingte An-weisungen

AnwendungAuswerten einesTests

Freizeitpark

Zusammen-fassung

Nachspiel

Fertig?Was ist, wenn

max_points < 0?percentage < 0?percentage > 100?

points < 0?points > max_points?

Wollen wir diese Fälle zulassen?

6. November 20189 P. Thiemann – Info I 28 / 39

Page 92: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

Bedingungen

Bedingte An-weisungen

AnwendungAuswerten einesTests

Freizeitpark

Zusammen-fassung

Nachspiel

Fertig?Was ist, wenn

max_points < 0?percentage < 0?percentage > 100?points < 0?

points > max_points?Wollen wir diese Fälle zulassen?

6. November 20189 P. Thiemann – Info I 28 / 39

Page 93: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

Bedingungen

Bedingte An-weisungen

AnwendungAuswerten einesTests

Freizeitpark

Zusammen-fassung

Nachspiel

Fertig?Was ist, wenn

max_points < 0?percentage < 0?percentage > 100?points < 0?points > max_points?

Wollen wir diese Fälle zulassen?

6. November 20189 P. Thiemann – Info I 28 / 39

Page 94: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

Bedingungen

Bedingte An-weisungen

AnwendungAuswerten einesTests

Freizeitpark

Zusammen-fassung

Nachspiel

Fertig?Was ist, wenn

max_points < 0?percentage < 0?percentage > 100?points < 0?points > max_points?

Wollen wir diese Fälle zulassen?

6. November 20189 P. Thiemann – Info I 28 / 39

Page 95: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

Bedingungen

Bedingte An-weisungen

AnwendungAuswerten einesTests

Freizeitpark

Zusammen-fassung

Zwei Alternativen

1. Defensives ProgrammierenFange alle unerwünschten Fälle im Code ab und erzeuge eine Fehlermeldung.

2. Design by ContractSpezifiziere die Funktion und programmiere unter der Annahme, dass nur diezulässigen Fälle auftreten.

Im Codebeispiel: Design by ContractAnnahmen (verschärfen den Typ)

max_points >= 00 <= percentage <= 1000 <= points <= max_points

6. November 20189 P. Thiemann – Info I 29 / 39

Page 96: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

Bedingungen

Bedingte An-weisungen

AnwendungAuswerten einesTests

Freizeitpark

Zusammen-fassung

Zwei Alternativen

1. Defensives ProgrammierenFange alle unerwünschten Fälle im Code ab und erzeuge eine Fehlermeldung.

2. Design by ContractSpezifiziere die Funktion und programmiere unter der Annahme, dass nur diezulässigen Fälle auftreten.

Im Codebeispiel: Design by ContractAnnahmen (verschärfen den Typ)

max_points >= 00 <= percentage <= 1000 <= points <= max_points

6. November 20189 P. Thiemann – Info I 29 / 39

Page 97: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

Bedingungen

Bedingte An-weisungen

AnwendungAuswerten einesTests

Freizeitpark

Zusammen-fassung

Zwei Alternativen

1. Defensives ProgrammierenFange alle unerwünschten Fälle im Code ab und erzeuge eine Fehlermeldung.

2. Design by ContractSpezifiziere die Funktion und programmiere unter der Annahme, dass nur diezulässigen Fälle auftreten.

Im Codebeispiel: Design by ContractAnnahmen (verschärfen den Typ)

max_points >= 00 <= percentage <= 1000 <= points <= max_points

6. November 20189 P. Thiemann – Info I 29 / 39

Page 98: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

Bedingungen

Bedingte An-weisungen

AnwendungAuswerten einesTests

Freizeitpark

Zusammen-fassungAnwendung — Freizeitpark

6. November 20189 P. Thiemann – Info I 30 / 39

Page 99: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

Bedingungen

Bedingte An-weisungen

AnwendungAuswerten einesTests

Freizeitpark

Zusammen-fassung

Anwendung — Freizeitpark

Mitfahren oder nicht?In einem Freizeitpark gibt es verschiedene Attraktionen, die mit Alters- undGrößenbeschränkungen belegt sind.

BeispielAttraktion Beschränkung BegleitungSilver-Star 11 Jahre und 1,40m —Euro-Mir 8 Jahre und 1,30m unter 10 JahreBlue Fire 7 Jahre und 1,30m —Eurosat 6 Jahre und 1,20m unter 10 JahreMatterhorn-Bltz 6 Jahre und 1,20m unter 8 JahreTiroler Wildwasserbahn 4 Jahre und 1,00m unter 9 Jahre

6. November 20189 P. Thiemann – Info I 31 / 39

Page 100: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

Bedingungen

Bedingte An-weisungen

AnwendungAuswerten einesTests

Freizeitpark

Zusammen-fassung

Anwendung — Freizeitpark

Mitfahren oder nicht?In einem Freizeitpark gibt es verschiedene Attraktionen, die mit Alters- undGrößenbeschränkungen belegt sind.

BeispielAttraktion Beschränkung BegleitungSilver-Star 11 Jahre und 1,40m —Euro-Mir 8 Jahre und 1,30m unter 10 JahreBlue Fire 7 Jahre und 1,30m —Eurosat 6 Jahre und 1,20m unter 10 JahreMatterhorn-Bltz 6 Jahre und 1,20m unter 8 JahreTiroler Wildwasserbahn 4 Jahre und 1,00m unter 9 Jahre

6. November 20189 P. Thiemann – Info I 31 / 39

Page 101: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

Bedingungen

Bedingte An-weisungen

AnwendungAuswerten einesTests

Freizeitpark

Zusammen-fassung

Anwendung — Freizeitpark

AufgabeEntwickle eine Funktion zur Einlasskontrolle bei Euro-Mir, die als Eingaben

das Alter,die Größe undob ein erwachsener Begleiter dabei ist

nimmt und als Ergebnis entweder 'Du␣darfst␣mitfahren!' oder'Du␣musst␣leider␣draussenbleiben.' liefert.

6. November 20189 P. Thiemann – Info I 32 / 39

Page 102: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

Bedingungen

Bedingte An-weisungen

AnwendungAuswerten einesTests

Freizeitpark

Zusammen-fassung

Schritt 1: Bezeichner und Datentypen

AufgabeEntwickle eine Funktion admit_euro_mir zur Einlasskontrolle bei Euro-Mir, die alsEingaben

age: int das Alter (in Jahren),height: int die Größe (in cm) undaccompanied: bool ob ein erwachsener Begleiter dabei ist

nimmt und als Ergebnis entweder True (’Du darfst mitfahren!’) oder False (’Dumusst draussenbleiben.’) -> bool liefert.

Festlegen von Einheiten für die Eingaben!

6. November 20189 P. Thiemann – Info I 33 / 39

Page 103: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

Bedingungen

Bedingte An-weisungen

AnwendungAuswerten einesTests

Freizeitpark

Zusammen-fassung

Schritt 2: Funktionsgerüst

� �def admit_euro_mir(

age: int ,height: int ,accompanied: bool) -> bool:

# fill inreturn� �

6. November 20189 P. Thiemann – Info I 34 / 39

Page 104: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

Bedingungen

Bedingte An-weisungen

AnwendungAuswerten einesTests

Freizeitpark

Zusammen-fassung

Schritt 3: Beispiele

� �admit_euro_mir (4, 101, 'Mama') == Falseadmit_euro_mir (8, 125, 'Papa') == Falseadmit_euro_mir (7, 130, 'Oma') == Falseadmit_euro_mir (9, 135, 'Opa') == Trueadmit_euro_mir (10, 135, '') == True� �

6. November 20189 P. Thiemann – Info I 35 / 39

Page 105: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

Bedingungen

Bedingte An-weisungen

AnwendungAuswerten einesTests

Freizeitpark

Zusammen-fassung

Schritt 4: Funktionsrumpf ausfüllen

� �def admit_euro_mir(

age: int ,height: int ,accompanied: bool) -> bool:

age_ok = age >= 8height_ok = height >= 130return (age_ok

and height_okand (age >= 10 or accompanied ))� �

6. November 20189 P. Thiemann – Info I 36 / 39

Page 106: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

Bedingungen

Bedingte An-weisungen

AnwendungAuswerten einesTests

Freizeitpark

Zusammen-fassung

Weitere Möglichkeiten

Entwickle eine admit Funktion, die die Bedingungen aus den globalenVariablen min_age, min_height und min_age_alone berechnet.Ändere die Funktion, so dass sie einen String ausgibt, der bei einerZurückweisung den Grund angibt. Zum Beispiel 'Du␣bist␣zu␣klein.','Du␣bist␣zu␣jung.' usw.

6. November 20189 P. Thiemann – Info I 37 / 39

Page 107: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

Bedingungen

Bedingte An-weisungen

Anwendung

Zusammen-fassungZusammenfassung

6. November 20189 P. Thiemann – Info I 38 / 39

Page 108: Informatik I: Einführung in die Programmierung · Bedingungen Typbool Vergleichsoperatio-nen Logische Operatoren BedingteAn-weisungen Anwendung Zusammen-fassung DerTypbool Nebenarithmetischen

Bedingungen

Bedingte An-weisungen

Anwendung

Zusammen-fassung

Zusammenfassung

bool ist ein weiterer Datentyp, dessen einzige Werte True und False sind.Vergleiche, wie z.B. == oder <, liefern Boolesche Werte.Boolesche Werte werden bei Bedarf nach int konvertiert, wobei True 7→ 1und False 7→ 0 gilt.Nullwerte werden als False interpretiert, alle anderen Werte als True.Bedingte Anweisungen (if-(elif)-else) erlauben die Auswahl zwischenalternativen Anweisungen.Checkliste zum Entwurf von Funktionen: Bezeichner und Datentypen,Funktionsgerüst, Beispiele, Funktionsrumpf

6. November 20189 P. Thiemann – Info I 40 / 39