Informatik

Boolesche Werte

Bisher sind True und False nur als Ergebnis von Vergleichen aufgetaucht. Man kann diese Wahrheitswerte aber auch selbst in Variablen speichern.

Solche Variablen heißen boolesche Variablen – benannt nach dem Mathematiker George Boole.

Aufgabe 1: Eis oder kein Eis?

Ein Schüler hat festgestellt, dass er viel zu häufig Eis isst. Daher hat er ein kleines Programm entwickelt, mit dem er ab jetzt ganz strikt jeden Tag entscheiden möchte, ob er ein Eis essen darf. Seine Entscheidung hängt vom Wochentag, vom Wetter und vom Inhalt seines Portemonnaies ab.

Analysiere das gegebene Beispiel. Gehe insbesondere auf die für uns neuen Aspekte ein.

Probiere danach alle acht Kombinationen der drei Variablen durch.


      
    
heute_ist_montag = False die_sonne_scheint = False mehr_als_zehn_euro = True eis_essen = not heute_ist_montag and die_sonne_scheint or mehr_als_zehn_euro if eis_essen: print("Ich gehe ein Eis essen!") else: print("Heute gibt es kein Eis!")
  • True und False sind Werte wie Zahlen oder Texte – man kann sie in Variablen speichern.
  • Sie werden groß geschrieben und stehen ohne Anführungszeichen. "True" wäre ein Text, nicht der Wahrheitswert.
  • Enthält eine Variable bereits einen Wahrheitswert, kann man sie direkt als Bedingung verwenden: if eis_essen: statt if eis_essen == True:.
  • Gute Namen für boolesche Variablen beschreiben eine Aussage, die wahr oder falsch sein kann: die_sonne_scheint, ist_fertig, hat_gewonnen.
Frage: Ist die Bedingung des Schülers eigentlich sinnvoll?

Schau dir die Zeile genau an:

eis_essen = not heute_ist_montag and die_sonne_scheint or mehr_als_zehn_euro

Sobald mehr_als_zehn_euro wahr ist, ist das Gesamtergebnis wahr – egal, welcher Tag ist und wie das Wetter ist. Sein „ganz striktes" Programm ist also gar nicht so strikt.

Woran das liegt und wie man es mit Klammern repariert, erfährst du in der nächsten Lektion.

Aufgabe 2: Eine boolesche Variable in der Schleife

Analysiere das folgende Beispiel und beschreibe, welches Bild sich ergibt – ohne es vorher am Rechner zu testen.

Achte besonders auf die vorletzte Zeile.


      
    
from turtle import * shape("turtle") screensize(600, 300) penup() goto(-140, 0) mache_punkt = True for i in range(10): if mache_punkt: dot(20) mache_punkt = not mache_punkt forward(20)
Tipp: Was macht die vorletzte Zeile?

mache_punkt = not mache_punkt dreht den Wert jedes Mal um: aus True wird False, aus False wird wieder True.

Man nennt eine solche Variable auch einen Schalter oder Toggle.

Fünf Punkte mit gleichmäßigen Lücken dazwischen

Auflösung. Erfrage das Passwort bei deiner Lehrkraft.

Aufgabe 3: Lernen oder Basketball?

Mithilfe von logischen Verknüpfungen soll ein Programm geschrieben werden, das entscheidet, ob du heute für eine Klassenarbeit lernst oder lieber draußen Basketball spielen gehst.

a) Überlege dir mindestens drei Bedingungen, von denen deine Entscheidung abhängt.

b) Entwickle daraus ein Programm.


      
    
# Deine booleschen Variablen hier # Deine Verknüpfung hier # Deine Ausgabe hier
Tipp: Ein möglicher Aufbau
arbeit_ist_morgen = True
es_regnet = False
freunde_haben_zeit = True
 
basketball = not arbeit_ist_morgen and not es_regnet and freunde_haben_zeit
 
if basketball:
    print("Ab auf den Platz!")
else:
    print("Heute wird gelernt.")

Aufgabe 4: Das Bild erweitern

Erweitere das Beispiel aus Aufgabe 2 so, dass sich ein Bild wie unten ergibt: Die Punkte wechseln sich in Farbe und Größe ab, und es wird an jeder Position ein Punkt gezeichnet.

Vierzehn Punkte, abwechselnd groß und rot sowie klein und blau


      
    
from turtle import * shape("turtle") screensize(600, 300) penup() goto(-140, 0) mache_punkt = True # Dein Code hier
Tipp

Die boolesche Variable entscheidet jetzt nicht mehr ob, sondern wie gezeichnet wird. Aus

if mache_punkt:
    dot(20)

wird also eine Abfrage mit else-Zweig, in der jeweils Farbe und Größe gesetzt werden.

Lösung. Erfrage das Passwort bei deiner Lehrkraft.

Zusatzaufgaben

a) Entwickle zu einer selbst ausgedachten Situation geeignete Bedingungen und ein passendes Programm.

b) In den bisherigen Beispielen gab es immer nur zwei mögliche Ergebnisse – Eis essen oder eben nicht. Entwickle eines der Programme so weiter, dass es mehr als zwei mögliche Ergebnisse gibt. Verwende dazu verschachtelte Verzweigungen oder elif.


Selbsttest

Boolesche Werte

Teilbare URL erstellen

Abschnitte auswählen