======Ein- und Ausgabe====== Falls ihr es noch nicht getan habt, arbeitet die folgenden Abschnitte durch: * [[python:shell|Grundlegende Datentypen, Variablen - die Pythonshell]] * [[python:lingrog|Lineare Programme - Aus- und Eingabe]] Im Python-Turtle-Modul stehen weitere Ein- und Ausgabefunktionen zur Verfügung. Diese sollen im folgenden Vorgestellt werden. * **textinput(title, text)** \\ title, text : zwei Zeichenketten \\ Öffnet grafischen Eingabedialog für eine Zeichenkette. title ist der Titel des Fensters, text beschreibt, was einzugeben ist. \\ * **numinput( title, text)** \\ title, text: zwei Zeichenketten wie bei textinput() \\ Öffnet grafischen Eingabedialog für eine Zahleneingabe (Kommazahl). \\ * **write(arg,move=False,align=’left’,font=(’Arial’,8,’normal’))** \\ arg : String, der geschrieben werden soll \\ move: True oder False \\ align: ’left’ , ’center’ oder ’right’ zur Ausrichtung des Textes \\ font: ein Dreiertupel zur Beschreibung der Schriftart \\ Schreibt Text an die aktuelle Turtle-Position, entsprechend dem Wert von align in der für font angegebenen Schriftart.Wenn move True ist, wird die Turtle zum rechten unteren Ende des Textes bewegt. **Beispielprogramm:** from turtle import * name = textinput("Namenseingabe","Gib deinen Namen ein!") write(name) a = numinput("Zahl 1","Gib eine Zahl ein!") b = numinput("Zahl 2","Gib noch eine Zahl ein!") # Die Turtle wird bewegt, dass der Text nicht überschrieben wird. penup() right(90) fd(12) left(90) pendown() # Die Zeichenkete für die Ausgabe wird zusammengesetzt. Mit der Funktion str() werden Zahlen in Zeichenketten umgewandelt. ausgabe = "Das Ergebnis von "+str(a)+" + "+str(b)+" ist "+str(a+b)+"." write(ausgabe) **Aufgabe 9** Teste das Beispiel! **Aufgabe 10** Schreibe ein Programm, dass nach Eingabe zweier Zahlen deren Summe, Differenz, Produkt und Quotient auf der Turtlezeichenfläche ausgibt. **Aufgabe 11** Um zu Testen, ob ein Computer genau so intelligent wie ein Mensch ist, schlug der Informatiker Alan Turing vor, dass sich ein Mensch mit einem Computer z.B. in einem Chat unterhält. Wenn der Mensch nicht merkt, dass sich am anderen Ende ein Computer befindet, so hat die Maschine den Test bestanden. Heute wird dies z.B. mit Hilfe von Chatbots in sozialen Netzwerken versucht. Das folgende Programm stellt einen solchen einfachen Chatbot dar. from turtle import * from datetime import datetime, timedelta now = datetime.now() birthdaydata = datetime(1987, 9, 28) diff = now - birthdaydata delta = diff.days years = delta // 365 delta = delta - 365*years month = delta // 30 delta = delta - 30*month days = delta #Das hier oben ist ein wenig komplizierter und dient auch nur zur Bestimmung des Alters... #Ab hier wird es interessant: screensize(800,600) setworldcoordinates(0, -600, 800, 0) penup() right(90) fd(12) left(90) pendown() write("Hallo ich bin Lieutenant Commander Data vom Raumschiff Enterpise, eine KI.") name = textinput("Name", "Wie heißt du?") penup() right(90) fd(12) left(90) pendown() write("Hallo "+name+"! Schön dich kennenzulernen!") penup() right(90) fd(24) left(90) pendown() write("Ich wurde am 28.09.1987 geboren und bin "+str(years)+" Jahre, "+str(month)+" Monate, "+str(days)+" Tage alt!\n") alter=numinput("Alter","Wie alt bist du?") penup() right(90) fd(12) left(90) pendown() write("Wow ich hätte nicht gedacht, dass du schon "+str(int(alter))+" Jahre alt bist.") Ergänze das Programm um mindestens drei Fragen mit erwarteter Eingabe, sowie den entsprechenden Antworten, bei denen der Bot auf die Eingaben reagiert.