Python: Unterschied zwischen den Versionen

Aus SibiWiki
Zur Navigation springen Zur Suche springen
 
(27 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
[[Kategorie:Python]]
[[Kategorie:Python]]
[[Kategorie:Algorithmen]]
[[Kategorie:Algorithmen]]
<font color='red'>'''Diese Seite ist für den <u>Projektkurs Algorithmen</u> in der Q1 gedacht!'''</font>
<font color='red'>'''Für Python in <u>10 Diff Informatik</u> gibt es folgende Seite:'''</font><br/>
'''[[Python-10]]'''


Die Programmiersprache Python wird im Projektkurs Algorithmen eingesetzt.
Die Programmiersprache Python wird im Projektkurs Algorithmen eingesetzt.
=Cheat-Sheet=
Für den Projektkurs Algorithmen gibt es folgendes sehr einfaches Cheat-Sheet:
'''[http://sibiwiki.de/wiki/images/Python-cheat-sheet.pdf Python-Cheat-Sheet.pdf]'''
=Online-Lexikon zu Python=
Auf dem Cheat-Sheet kann natürlich nicht alles drauf stehen...
Wir empfehlen das Online-Lexikon von '''w3schools'''. <br/>Da findet man alles zu Python (und auch zu SQL, Java, Javascript, HTML...), was man braucht - jeweils mit einfachen Beispielen und direkt einem Online-Compiler zum selber ausprobieren.
Am einfachsten googlet man (auf Englisch!!!) das, was man gerne wüsste, z.B.<br/>''w3schools python list''.


=Installation=
=Installation=
Im Projektkurs arbeiten wir in der Schule mit Python 3.2.3
Im Projektkurs arbeiten wir in der Schule mit '''Python 3.8.3'''
* Zum Download [http://www.python.org/download/releases/3.2.3/ hier klicken]
* '''[https://www.python.org/downloads/release/python-383/ Download Python 3.8.3]'''
 
Auf der Seite muss man runterscrollen bis zu "Files" und dann den richtigen Installer aussuchen.<br/>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...)''


(Zuhause kann man auch mit einem moderneren Python arbeiten, aber manche Sachen funktionieren dann nicht einwandfrei...)
'''Erklärvideo für die Installation (für Windows): [https://youtu.be/jLDL6NsZFEw hier klicken]'''<br/>
''Das Video ist für kurze Zeit schwarz: An der Stelle muss man als Administrator der Installation zustimmen.''


=Entwicklungsumgebung=
=Entwicklungsumgebung=
==Online-Interpreter==
Es gibt für Python auch gute Online-Interpreter! Damit muss man Python noch nicht einmal zuhause installieren.
* 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...)
* Problem des Online-Interpreters: Die Grafikbibliothek [[Tkinter]] funktioniert nicht.
==IDLE==
Die Python-eigene Entwicklungsumgebung IDLE nutzen wir in der Schule.<br/>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:<br/>''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==
==Eclipse==
Am besten nutzt man für die Programmierung in Python die Entwicklungsumgebung [[Eclipse]].
Komfortabler für die Programmierung in Python ist die Entwicklungsumgebung [[Eclipse]].<br/>


Dafür braucht man zusätzlich das '''PyDev''' Plugin.
Dafür braucht man zusätzlich das '''PyDev''' Plugin.
Zeile 22: Zeile 66:


** mehrfach OK klicken.
** mehrfach OK klicken.
==Online-Interpreter==
Es gibt für Python auch gute Online-Interpreter! Damit muss man Python noch nicht einmal zuhause installieren. ''(Danke an Jonas Thelen für den Hinweis!)''
* Empfehlung: '''https://repl.it/'''
* '''WICHTIG:''' Den Programmtext zur Sicherheit auf dem eigenen Rechner speichern! (Vertrauen ist gut, Sicherheitskopie ist besser...)
* Problem des Online-Interpreters: Die Grafikbibliothek [[Tkinter]] funktioniert nicht.


=Beispielprogramm: Sortieren durch Einfügen=
=Beispielprogramm: Sortieren durch Einfügen=
Zeile 36: Zeile 74:
''Den Quellcode unten kann man kopieren und in ein eigenes Python-Programm einfügen.''
''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!''
''Es kann aber sein, dass man die '''Einrückungen''' noch reparieren muss!''<br>
 
''(Beim Kopieren werden keine Tabulatoren als Einrückung genommen, sondern Leerzeichen. Besser sind Tabulatoren...)''
(Beim Kopieren werden keine Tabulatoren als Einrückung genommen, sondern Leerzeichen. Besser sind Tabulatoren...)


<code>
<code>
  '''def anRichtigerStelleEinfuegen(liste, zahl):'''
'''def anRichtigerStelleEinfuegen(liste, zahl):'''
     for i in range(0,len(liste)):
     for i in range(0,len(liste)):
         z = liste[i]
         z = liste[i]
Zeile 53: Zeile 90:
     for i in range(0,len(liste)):
     for i in range(0,len(liste)):
         print(liste[i])
         print(liste[i])
         anRichtigerStelleEinfuegen(ergebnis, liste[i])
         '''''anRichtigerStelleEinfuegen(ergebnis, liste[i])'''''
         print(ergebnis)
         print(ergebnis)
     return ergebnis
     return ergebnis
Zeile 60: Zeile 97:
  # Hauptprogramm: die testliste sortieren
  # Hauptprogramm: die testliste sortieren
  testliste = [28,17,17,83,11,56]
  testliste = [28,17,17,83,11,56]
  ergebnis = sortierenDurchEinfuegen(testliste)
  ergebnis = '''''sortierenDurchEinfuegen(testliste)'''''
  print("Ergebnis: ", ergebnis)
  print("Ergebnis: ", ergebnis)
</code>
=Zufall=
==Liste mit Zufallszahlen==
Das folgende Beispielprogramm zeigt, wie man Zufallszahlen in Python erzeugt und in eine Liste packt.
<code>
# 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)
</code>
==PI bestimmen mithilfe von Zufallszahlen==
Man "schießt" 10.000mal auf das Einheitsquadrat und misst, wie oft man den Einheitskreis getroffen hat.
<code>
import random
'''def schiessen(n):'''
  treffer = 0
  for i in range(0,n):
      # zwei Zufallszahlen zwischen 0 und 1
      x = random.random()
      y = 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
  return pi
# Hauptprogramm
random.seed()
ungefaehresPi = schiessen(10000)
print(ungefaehresPi)</code>
=Grafik=
Das folgende Beispielprogramm bietet einfache Methoden zum Zeichnen von Kreisen, Linien, Rechtecken und Punkten.
Unten werden dann die Methoden beispielhaft aufgerufen.
<code>
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()
</code>
</code>

Aktuelle Version vom 27. November 2023, 18:41 Uhr


Diese Seite ist für den Projektkurs Algorithmen in der Q1 gedacht!

Für Python in 10 Diff Informatik gibt es folgende Seite:
Python-10


Die Programmiersprache Python wird im Projektkurs Algorithmen eingesetzt.

Cheat-Sheet

Für den Projektkurs Algorithmen gibt es folgendes sehr einfaches Cheat-Sheet:

Python-Cheat-Sheet.pdf

Online-Lexikon zu Python

Auf dem Cheat-Sheet kann natürlich nicht alles drauf stehen...

Wir empfehlen das Online-Lexikon von w3schools.
Da findet man alles zu Python (und auch zu SQL, Java, Javascript, HTML...), was man braucht - jeweils mit einfachen Beispielen und direkt einem Online-Compiler zum selber ausprobieren.

Am einfachsten googlet man (auf Englisch!!!) das, was man gerne wüsste, z.B.
w3schools python list.

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...)

Erklärvideo für die Installation (für Windows): hier klicken
Das Video ist für kurze Zeit schwarz: An der Stelle muss man als Administrator der Installation zustimmen.

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.

    • 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):
  treffer = 0
  for i in range(0,n):
      # zwei Zufallszahlen zwischen 0 und 1
      x = random.random()
      y = 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
  return pi

# Hauptprogramm
random.seed()
ungefaehresPi = schiessen(10000)
print(ungefaehresPi)

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