Python: Unterschied zwischen den Versionen

Aus SibiWiki
Zur Navigation springen Zur Suche springen
Zeile 13: Zeile 13:
==Online-Interpreter==
==Online-Interpreter==
Es gibt für Python auch gute Online-Interpreter! Damit muss man Python noch nicht einmal zuhause installieren.  
Es gibt für Python auch gute Online-Interpreter! Damit muss man Python noch nicht einmal zuhause installieren.  
* Empfehlung: '''[https://www.tutorialspoint.com/execute_python3_online.php tutorialspoint python online compiler]'''
* Empfehlung: '''[https://www.jdoodle.com/python3-programming-online/ jdoodle python online interpreter]'''
* '''WICHTIG:''' Den Programmtext auf dem eigenen Rechner speichern! (Vertrauen ist gut, Sicherheitskopie ist besser...)
* '''WICHTIG:''' Den Programmtext auf dem eigenen Rechner speichern! (Vertrauen ist gut, Sicherheitskopie ist besser...)
* Problem des Online-Interpreters: Die Grafikbibliothek [[Tkinter]] funktioniert nicht.
* Problem des Online-Interpreters: Die Grafikbibliothek [[Tkinter]] funktioniert nicht.

Version vom 10. November 2021, 17:35 Uhr


Die Programmiersprache Python wird im Projektkurs Algorithmen eingesetzt.

Installation

Im Projektkurs arbeiten wir in der Schule mit Python 3.2.3

(Zuhause kann man auch mit einem moderneren Python arbeiten, aber manche Sachen funktionieren dann nicht einwandfrei...)

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.

Eclipse

Am besten nutzt man für die Programmierung in Python die Entwicklungsumgebung Eclipse.

Dafür braucht man zusätzlich das PyDev Plugin.

    • 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()