====== KiCoKu Sommer 2023 ====== Dieser Bereich basiert auf dem Buch "Teach your kids to code" from Bryson Pane und dem folgenden Udemy Kurs https://www.udemy.com/course/teach-your-kids-to-code\\ Dieser Kurs ist zwar auf Englisch, aber sehr leicht zu verstehen. Dauer: Mo. 28.8 bis Fr. 1.9 Von 9:00 bis 13:00 Teilnehmer: Felix G, Markus, Paul, Felix E ===== Python Abschnitt 1 - Installation und Test ===== Installation: [[https://www.python.org/downloads/windows/|Python für Windows]] ==== Test der Installation ==== Eingabe in einen Python Interpreter >>>1+2+3 6 >>>print("Hallo Du") Hallo Du ==== Berechnungen ==== Eingabe in einen Python Interpreter >>>1 + 1 2 >>>3 - 2 1 >>>4 * 4 16 >>>8 / 4 2.0 >>>7 / 4 1.75 >>>7 // 4 1 >>>7 % 4 3 >>>4 ** 2 16 >>>8 - 2 * 3 2 >>>( 8 - 2 ) * 3 18 ==== Text Ein und Ausgabe ==== Eingabe der Python IDLE und Ausführen (mit F5) # YourName.py name = input("What is your name?\n") print("Hi, ", name, name, name, name, name) Bildschirmausgabe: What is your name? Wolfgang Hi, Wolfgang Wolfgang Wolfgang Wolfgang Wolfgang ===== Python Abschnitt 2 - Zeichnen ===== ==== Erstes Ziel Sechs Eckige Spirale ==== Unser erstes Ziel, eine sechseckige Spirale zeichnen lassen. Dieses Programm zeigt erstmal nur unser erstes Ziel. Das Programm muss so noch nicht verstanden werden. #NiceHexSpiral.py import turtle colors=['red', 'purple', 'blue', 'green', 'yellow', 'orange'] t=turtle.Pen() t.speed(0) turtle.bgcolor('black') for x in range(360): t.pencolor(colors[x%6]) t.width(x/100+1) t.forward(x) t.left(59) {{:kicoku:s01-nicehexspiral.png?200|}} ==== Zeichnen von Dreieck und Viereck ==== #Viereck.py import turtle t=turtle.Pen() #Erstes Viereck t.forward(200) t.left(90) t.forward(200) t.left(90) t.forward(200) t.left(90) t.forward(200) t.left(90) #Zweites Viereck in rot t.pencolor("red") for x in range(4): t.forward(100) t.left(90) #Und ein Dreieck in grün t.pencolor("green") for x in range(3): t.forward(300) t.left(120) {{:kicoku:viereck.png?200|}} ==== Viereckige Spirale ==== Wir verwenden die Library (Package) turtle - wird mit import gemacht\\ Bei einer Schleife muss eine Einrückung gemacht werden # ViereckigeSpirale.py import turtle # Verwendung des Stifts von der turtle Library t = turtle.Pen() # Mit der Schleife wird die Spirale gezeichnet # x ist die Schleifenvariable, wird immer groesser und damit der Strich laenger, der gezeichnet wird for x in range(100): # Zeichnen der Linie t.forward(x) # Drehen um 90 Grad t.left(90) === Aufgaben === Beschleunigen des Skripts, einfuegen der Geschwindigkeit (nach turtle.Pen)\\ t.speed(0) Ändern der Spirale\\ Ändern des Abstands\\ t.forward(2*x)\\ Ändern der Farbe\\ t.pencolor("red") Ändern der Lage\\ t.left(91) {{:kicoku:viereckigespirale.png?200|}} ==== Kreise ==== # KreisSpirale.py import turtle # Verwendung des Stifts von der turtle Library t = turtle.Pen() t.speed(0) t.pencolor("red") # Mit der Schleife wird die Spirale gezeichnet # x ist die Schleifenvariable, wird immer groesser und damit der Strich laenger, der gezeichnet wird for x in range(100): # Zeichnen der Linie t.circle(x) # Drehen um 90 Grad t.left(91) {{:kicoku:kreisspirale.png?200|}} Ändern auf 90 und dann auf 60 Grad\\ Ändern der Farben auf andere Werte\\ "black" (schwarz)\\ "white" (weiss)\\ "red" (rot)\\ "green" (grün)\\ "blue" (blau)\\ "orange" (orange)\\ "yellow" (gelb)\\ "purple" (lila)\\ "pink" (pink)\\ "brown" (braun)\\ "gray" (grau) ==== Verschiedene Farben ==== # FaerbigeViereckigeSpirale.py import turtle t = turtle.Pen() t.speed(0) # Eine Liste von Farben colors = ["red", "yellow", "blue", "green"] for x in range(100): t.pencolor(colors[ x % 4 ]) t.forward(2*x) t.left(91) {{:kicoku:faerbigeviereckigespirale.png?200|}} === Aufgaben === Was passiert wenn die Farben geändert werden?\\ Was passiert wenn die Zahl 4 geändert wird?\\ Wie kann die Hintergrundfarbe geändert werden?\\ Wie können Kreise gezeichnet werden?\\ Was passiert wenn der Winkel von 91 auf 95 erhöht wird? === Weitere Änderungen === Verwendung einer Variable\\ Mehr Farben\\ Andere Berechnungen\\ Eine zusätzliche Drehung am Ende # FaerbigeViereckigeSpirale2.py import turtle t = turtle.Pen() turtle.bgcolor("black") t.speed(0) # Eine Liste von Farben sides = 10 colors = ["red", "yellow", "blue", "orange", "green", "purple", "gray", "white", "pink", "light blue"] for x in range(360): t.pencolor(colors[ x % sides ]) t.forward(x * 3 / sides + x) t.left(360/sides +1) t.width(x*sides/100) t.left(90) {{:kicoku:faerbigeviereckigespirale2.png?200|}} ===== Python Abschnitt 3 - Variablen ===== ==== Textvariablen ==== Ein Beispiel mit Textvariablen # ThankYou.py my_name = "Bryson" my_age = 43 your_name = input("What is your name? ") your_age = input("How old are you? ") print("My name is", my_name, ", and I am", my_age, "years old.") print("Your name is", your_name, ", and you are", your_age, ".") print("Thank you for taking this course,", your_name, "!") Bildschirmausgabe What is your name? Wolfgang How old are you? 52 My name is Bryson , and I am 43 years old. Your name is Wolfgang , and you are 52 . Thank you for taking this course, Wolfgang ! ==== Zahlen Variablen ==== Beispiel Berechnung einer Pizzabestellung #Pizza.py # Ask the person how many pizzas they want, get the number with eval() number_of_pizzas = eval(input("How many pizzas do you want? ")) # Ask for the menu cost of each pizza cost_per_pizza = eval(input("How much does each pizza cost? ")) # Calculate the total cost of the pizzas as our subtotal subtotal = number_of_pizzas * cost_per_pizza # Wir geben 10% Trinkgeld tip_rate = 0.1 # Store 10% as the decimal value 0.1 trinkgeld = subtotal * tip_rate # Add the sales tax to the subtotal for the final total total = subtotal + trinkgeld # Show the user the total amount due, including tax print("The total cost is €", total) print("This includes €", subtotal, "for the pizza and") print("€", trinkgeld, "als Trinkgeld.") Bildschirmausgabe How many pizzas do you want? 3 How much does each pizza cost? 8 The total cost is € 26.4 This includes € 24 for the pizza and € 2.4000000000000004 als Trinkgeld. ==== Wiederholte Zeichenausgabe ==== Wiederholte Zeichenausgabe # SayMyName.py # Ask the user for their name name = input("What is your name? ") # Print their name 100 times for x in range(100): # Print their name followed by a space, not a new line print(name, end = " rules! ") Bildschirmausgabe What is your name? Wolfgang Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! Wolfgang rules! ==== Text zeichnen ==== Textspirale # SpiralMyName.py - prints a colorful spiral of the user's name import turtle # Set up turtle graphics t = turtle.Pen() t.speed(0) turtle.bgcolor("black") colors = ["red", "yellow", "blue", "green"] # Ask the user's name using turtle's textinput pop-up window your_name = turtle.textinput("Enter your name", "What is your name?") # Draw a spiral of the name on the screen, written 100 times for x in range(100): t.pencolor( colors[ x % 4] ) t.penup() t.forward( x * 4 ) t.pendown() t.write(your_name, font = ("Times", int( (x + 4) / 4), "bold") ) t.left(92) {{:kicoku:spiralmyname.png?200|}} ==== Taschenrechner ==== print("MathHomework.py") # Ask the user to enter a math problem problem = input("Enter a math problem, or 'q' to quit: ") # Keep going until the user enters 'q' to quit while (problem != "q"): # Show the problem, and the answer using eval() print("The answer to ", problem, "is:", eval(problem) ) # Ask for another math problem problem = input("Enter another math problem, or 'q' to quit: ") # This while loop will keep going until you enter 'q' to quit Bildschirmausgabe MathHomework.py Enter a math problem, or 'q' to quit: 5 + 2 The answer to 5 + 2 is: 7 Enter another math problem, or 'q' to quit: 5 / 2 The answer to 5 / 2 is: 2.5 Enter another math problem, or 'q' to quit: 5 // 2 The answer to 5 // 2 is: 2 Enter another math problem, or 'q' to quit: 5 % 2 The answer to 5 % 2 is: 1 Enter another math problem, or 'q' to quit: (4 + 2) * (2 + 2) The answer to (4 + 2) * (2 + 2) is: 24 Enter another math problem, or 'q' to quit: q ==== Eingabe für die färbige Spirale ==== # ColorSpiralInput.py import turtle t = turtle.Pen() t.speed(0) turtle.bgcolor("black") # Set up a list of any 8 valid Python color names colors = ["red", "yellow", "blue", "green", "orange", "purple", "white", "gray"] # Ask the user for the number of sides sides = int( turtle.numinput("Number of sides", "How many sides do you want (1-8)?", 4, 1, 8)) # Draw a colorful spiral with the user-specified number of sides for x in range(360): t.pencolor( colors[x % sides] ) t.forward( x * 3 / sides + x) t.left(360 / sides + 1) t.width(x * sides / 200) {{:kicoku:inputcolorspiral.png?200|}}