Python: Unterschied zwischen den Versionen
Zeile 29: | Zeile 29: | ||
==Editieren und Starten eines Python-Scripts mit IDLE== | ==Editieren und Starten eines Python-Scripts mit IDLE== | ||
'''Neue''' Python-Programme kann man so anlegen: | |||
* Bei "Suchbegriff hier eingeben" (neben dem Startsymbol) das Wort '''IDLE''' eintippen. | * Bei "Suchbegriff hier eingeben" (neben dem Startsymbol) das Wort '''IDLE''' eintippen. | ||
* IDLE starten. | * IDLE starten. | ||
Zeile 36: | Zeile 37: | ||
* '''F5''' um das Programm zu starten. | * '''F5''' um das Programm zu starten. | ||
Existierende Python-Programme (Endung: .py) kann man im Windows-Explorer so editieren: | '''Existierende''' Python-Programme (Endung: .py) kann man im Windows-Explorer so editieren: | ||
* Rechte Maustaste auf das Programm -> Edit with IDLE -> Edit with IDLE | * Rechte Maustaste auf das Programm -> Edit with IDLE -> Edit with IDLE | ||
Version vom 11. November 2021, 12:08 Uhr
Die Programmiersprache Python wird im Projektkurs Algorithmen eingesetzt.
Cheat-Sheet
Für den Projektkurs Algorithmen gibt es folgendes sehr einfaches Cheat-Sheet:
Installation
Im Projektkurs arbeiten wir in der Schule mit Python 3.8.3
Auf der Seite muss man runterscrollen bis zu "Files" und dann den richtigen Installer aussuchen.
Für Windows-Nutzer in der Regel: Windows x86-64 executable installer
(Zuhause kann man auch mit einem moderneren Python arbeiten, aber manche Sachen funktionieren dann vielleicht nicht einwandfrei in der Schule...)
Entwicklungsumgebung
Online-Interpreter
Es gibt für Python auch gute Online-Interpreter! Damit muss man Python noch nicht einmal zuhause installieren.
- Empfehlung: jdoodle python online interpreter
- WICHTIG: Den Programmtext auf dem eigenen Rechner speichern! (Vertrauen ist gut, Sicherheitskopie ist besser...)
- Problem des Online-Interpreters: Die Grafikbibliothek Tkinter funktioniert nicht.
IDLE
Die Python-eigene Entwicklungsumgebung IDLE nutzen wir in der Schule.
Sehr rudimentär, reicht aber für unsere Zwecke.
Editieren und Starten eines Python-Scripts mit IDLE
Neue Python-Programme kann man so anlegen:
- Bei "Suchbegriff hier eingeben" (neben dem Startsymbol) das Wort IDLE eintippen.
- IDLE starten.
- File -> new File
- Programm schreiben!
- STRG+S um zu speichern:
Wichtig: geeigneten Ort und Dateinamen auswählen, damit man es später wieder findet!! - F5 um das Programm zu starten.
Existierende Python-Programme (Endung: .py) kann man im Windows-Explorer so editieren:
- Rechte Maustaste auf das Programm -> Edit with IDLE -> Edit with IDLE
Eclipse
Komfortabler für die Programmierung in Python ist die Entwicklungsumgebung Eclipse.
Dafür braucht man zusätzlich das PyDev Plugin.
- PyDev Download-Page: hier klicken
- PyDev installieren direkt aus Eclipse:
- Help -> Install new Software -> Add ->
- jetzt bei Location folgendes eintragen: http://pydev.org/updates
- mehrfach OK klicken.
Beispielprogramm: Sortieren durch Einfügen
Das folgende Beispielprogramm sortiert eine Liste durch Einfügen an der richtigen Stelle. Man kann hier sehen, wie man in Python mit Variablen, Listen, for-Schleifen und if-Bedingungen umgeht und wie man Methoden definiert.
Den Quellcode unten kann man kopieren und in ein eigenes Python-Programm einfügen.
Es kann aber sein, dass man die Einrückungen noch reparieren muss!
(Beim Kopieren werden keine Tabulatoren als Einrückung genommen, sondern Leerzeichen. Besser sind Tabulatoren...)
def anRichtigerStelleEinfuegen(liste, zahl):
for i in range(0,len(liste)):
z = liste[i]
if z>zahl:
liste.insert(i,zahl)
return
liste.append(zahl)
def sortierenDurchEinfuegen(liste):
ergebnis = []
for i in range(0,len(liste)):
print(liste[i])
anRichtigerStelleEinfuegen(ergebnis, liste[i])
print(ergebnis)
return ergebnis
# Hauptprogramm: die testliste sortieren
testliste = [28,17,17,83,11,56]
ergebnis = sortierenDurchEinfuegen(testliste)
print("Ergebnis: ", ergebnis)
Zufall
Liste mit Zufallszahlen
Das folgende Beispielprogramm zeigt, wie man Zufallszahlen in Python erzeugt und in eine Liste packt.
# Das folgende import-Statement steht ganz zu Beginn des Programms!
import random
# Hauptprogramm
# die folgende Zeile muss nur einmal aufgerufen werden
# am besten zu Beginn des Hauptprogrammes.
# Dadurch wird der Zufall initialisiert.
random.seed()
# 10 Zufallszahlen zwischen 0 und 1
zufallszahlen = []
for i in range(10):
z = random.random()
zufallszahlen.append(z)
print(zufallszahlen)
# 10 Zufallszahlen zwischen 1.5 und 1.9
zahlenImBereich = []
for i in range(0,10):
z = random.uniform(1.5, 1.9)
zahlenImBereich.append(z)
print(zahlenImBereich)
# 10 Wuerfelzahlen
wuerfelzahlen = []
for i in range(10):
w = random.randint(1,6)
wuerfelzahlen.append(w)
print(wuerfelzahlen)
PI bestimmen mithilfe von Zufallszahlen
Man "schießt" 10.000mal auf das Einheitsquadrat und misst, wie oft man den Einheitskreis getroffen hat.
import random
def schiessen(n):
random.seed()
treffer = 0
for i in range(0,n):
# zwei Zufallszahlen zwischen 0 und 1
x = size * random.random()
y = size * random.random()
# ueberpruefen, ob (x|y) im Einheitskreis liegt
if(x*x+y*y <= 1):
treffer=treffer+1
# ende der for-Schleife
# pi ist das Vierfache der Trefferwahrscheinlichkeit,
# denn man hat nur einen Viertelkreis gemessen.
pi = 4*treffer/n
print("PI ist ungefaehr ",pi)
return pi
# Hauptprogramm
schiessen(10000)
Grafik
Das folgende Beispielprogramm bietet einfache Methoden zum Zeichnen von Kreisen, Linien, Rechtecken und Punkten.
Unten werden dann die Methoden beispielhaft aufgerufen.
from tkinter import Canvas, Tk, mainloop
def linie(canvas, x1, y1, x2, y2, color):
canvas.create_line(x1,y1,x2,y2,fill=color)
def punkt(canvas, x, y, color):
linie(canvas, x, y, x+1, y, color)
def kreis(canvas,x,y, r, color):
canvas.create_oval(x-r,y-r,x+r,y+r, fill=color)
def rechteck(canvas, x1, y1, x2, y2, color):
canvas.create_rectangle(x1,y1,x2,y2,fill=color)
# *** Hauptprogramm ***
# Groesse der Leinwand festlegen
leinwand_breite = 200
leinwand_hoehe = 200
# Vorbereitung der Grafik
master = Tk()
leinwand = Canvas(master, width=leinwand_breite, height=leinwand_hoehe)
leinwand.pack()
# Linie zeichnen
linie(leinwand, 20, 100, 180, 100, "blue")
# Punkte zeichnen
for x in range(1,19):
punkt(leinwand, x*10, 110, "black")
# Rechteck zeichnen
rechteck(leinwand, 30,170,80,190, "green")
# Kreis zeichnen
kreis(leinwand, 30,60, 20, "red")
# Beenden des Programms verhindern
mainloop()