bit.ly/2v7Tznq
Am besten lernt man eine
Programmiersprache durch Programmieren!
Ziel ist es, dass Ihr in 2 Stunden kleinere Programme selbst schreiben
könnt.
asdoansdfpnlkwenfpk.cijasodknae()!= number.add()
#Kommentieren!
number.add() #Dies ist ein Kommentar, Beschreibung was die
#Funktion macht, jede Kommentarzeile braucht ein #
Errors should never pass silently.
Die Funktion input gibt das in der Klammer aus, und erwartet
vom User einen Input, welcher in n gespeichert wird.
n = input("Gib einen Input ein: ") Bestimmt das Trennzeichen
print("Danke") zwischen den Variablen, optional
n=...
print(type(n))
Komplexe Zahl(complex) für komplexe Zahlen. Z.B. a =3+4j # a ist ein complex
Regeln für Fliesskommazahlen
− Teste niemals zwei errechnete Fliesskommazahlen auf Gleichheit
a == b, tritt nie ein obwohl a = 1 und b = 0.9 + 0.1, immer mit der
Differenz arbeiten, z.B. a-b < 0.0000001.
Tipps
Wir verwenden das Programm PyCharm. Start, Suchen: PyCharm
New Project-> File -> New python file
Potenz-Funktion = **
Das grüne Dreieck lässt
euren Code laufen
Lösung Aufgabe 1
x=1
while x < 10:
print("42") Schleifenrumpf, was soll
x=x+1
ausgeführt werden.
Counter erhöhen damit
Abbruchbedinung nach 9
Schritten erfüllt wird.
Tipps
While Schlaufe verwenden, wie strukturiere ich?
Lösung Aufgabe 2
x = 42
z=0
while x <= 62:
z=z+x
x=x+1
print(z)
For-loop
Startwert wählen,
optional sonst Endwert wählen, nicht
wird 0 gewählt. inklusive.
Schrittgrösse, optional
Geht die Zahlen durch von start sonst wird 1 gewählt.
bis und ohne stop durch = range(start,stop,step)
Falls Bedingung1
eintrifft, führe if Bedingung1:
Anweisung1 und 2 aus
Anweisung1
Elif = else if,
Anweisung2
ansonsten falls elif Bedingung2: Else, ist zu verstehen als
Bedingung2 eintrifft Anweisung3 Rest. Falls Bedingung1
führe Anweisung3 und Bedingung2 nicht
aus
else: eingetroffen sind, führe
Anweisung4 Anweisung 4 aus.
Aufgabe 3
Geht die Zahlen von 1 bis 100 mit einer Forschlaufe durch, für die
Zahlen 30-40 gebt ihr aus: Zahl, "zu klein"
Für die Zahl 41 wird nichts ausgegeben.
Für die Zahl 42 gebt ihr aus: Zahl, "Die Antwort"
Für die Zahlen > 42 gebt ihr aus: Zahl,"zu gross"
Tipps
Ausgeben mit print, if-Bedingungen verwenden,
if Bedingung1 and Bedingung2:
Lösung Augabe 3
for x in range(1,101):
if x >= 30 and x <= 40:
print(x,"zu klein",sep = " ")
elif x == 42:
print(x,"die Antwort", sep=" ")
elif x > 42:
print(x,"zu gross", sep=" ")
for x in range(1,10):
Break, beendet den umgebenden #Code innerhalb der Schlaufe
if x == 5: #condition
Loop. break
#Code innerhalb der Schlaufe
for x in range(1,10):
#Code innerhalb der Schlaufe
if x == 5: #condition
Continue, überspringt den Rest continue
des Programmcodes im Loop und print(x)
#Code innerhalb der Schlaufe
macht mit der nächsten Iteration
weiter.
#Code ausserhalb der Schlaufe
Aufgabe 4
Schreiben Sie ein Programm, welches alle Zahlen ausgibt, ausser die
durch 4 teilbaren nicht. Zudem sollte sich das Programm bei i = 20
beenden. Benutzen Sie folgende for-Schleife: for x in range(0,100)
Tipps
Verwendet break und continue, Modulo-Operator %
Lösung Aufgabe 4
for x in range(1,100):
if x == 20:
break
if x % 4 == 0:
continue
print(x)
Was macht folgendes Programm ?
for n in range(2, 10):
for x in range(2, n):
if n % x == 0:
print (n, 'equals', x, '*', n/x)
break
else:
# loop geht durch ohne einen Factor zu finden
print(n, 'is a prime number')
Der else Zweig wird genau dann durchlaufen, wenn die for-
Schlaufe leer geworden ist.
Inhalt meiner Liste, kann Achtung Listen
List, eine Art Stapel gemischte Elemente enthalten
wie Zahlen und Wörter etc.
beginnen beim
0’ten Element.
Name meiner Liste
mylist = ["ham","cheese",3,4,5+3j,"banana"]
print(mylist[0:4]) #mylist[:] für die ganze Liste
Zugriff auf #mylist[2] Zugriff auf ein
mylist #einzelenes Element
von bis
mylist = ["ham","cheese",3,4,5+3j,"banana"]
mylist.insert(3,"Beef Burger") #Einfügen eines Elementes an einer Stelle
print(mylist[:])
Aufgabe 5
Schreiben Sie ein Programm, welches eine Liste mit den Zahlen 1-6
füllt. Geben Sie zur Kontrolle Ihre Liste aus.
Danach berechnen Sie den Durchschnitt der Liste und geben nur diesen
aus. Lsg(3.5)
Tipps
For-Schlaufe, print(list[:])
Lösung Aufgabe 5
mylist = []
for x in range(1,7):
mylist = mylist + [x] #Liste füllen
durchschnitt = 0
for x in mylist:
durchschnitt += x #Alle Zahlen der Liste zusammenzählen und in
#Durchschnitt speichern
durchschnitt = durchschnitt/len(mylist) #Durchschnitt teilen durch die
#Länge der Liste
print(durchschnitt)
Grundregel, alles was Sie mehr als 2 mal
brauchen wird in eine Funktion gepackt, um
#more code
bis10() def sum(x):
#more code k=0
bis10() for i in range(0,x):
bis10(32) k=k+i
return k #Rückgabe ans Betriebssystem,
#k kann jetzt verwendet werden.
p=sum(29)
#more code with p or sum(...)
print(sum(10))#was würdet Ihr ohne dieses
#Print sehen?
Aufgabe 6
Schreiben Sie eine Funktion, die das Volumen eines Quaders
berechnet. Danach rufen Sie diese Funktion auf. Es sollte das Resultat
nur ans Betriebssystem zurückgeben.
Modifizieren Sie Ihr Programm so, dass es nun einen Input aus der
Konsole für Länge, Breite und Höhe erwartet und mit diesem rechnet
und danach das Resultat ausgibt durch print(quader()).
Tipps
Def funktion, eval(), input
Lösung unmodifiziert
Aufruf der
Funktion
Lösung modifiziert
def quader():
x = input("Gib eine Länge ein: ")
x= eval(x)
y = input("Gib eine Breite ein: ")
y=eval(y)
z = input("Gib eine Höhe ein: ")
z=eval(z)
k = x*y*z
return k
print(quader())
Hier wird die Klasse definiert, es muss
meinekiste= kiste(1,2,3)
print(meinekiste.getvolumen())
Klassenvariablen und Instanzvariablen
class klasse: class klasse:
zahl = 42 zahl = 42
list = [] Der Unterschied
def __init__(self,text): liegt in der Zeile, wo def __init__(self,text):
self.text = text List definiert wird. self.text = text
Einmal als self.list = []
def funk(self, numb): Klassenvariable, def funk(self, numb):
einmal als
self.zahl = numb self.zahl = numb
Instanzvariable. List
self.list.append(numb) gehört zu den self.list.append(numb)
sogenannten
obj1 = klasse("a") mutable Variable. obj1 = klasse("a")
obj2 = klasse("z") obj2 = klasse("z")
obj1.funk(3) Was wird obj1.funk(3)
ausgegeben ?
print(obj1.list, obj2.list) print(obj1.list, obj2.list)
Lebewesen ist die Grundklasse.
Vererbung Ererbte Sachen können
überschrieben werden.
class lebewesen:
augen = 2
def __init__(self):
self.art = "Säugetier"
Die Klasse hund erbt
von der Klasse
class hund(lebewesen): lebewesen die Attribute
Fell = "blond" augen und art.
def __init__(self):
name = "H." Der Konstruktor der Klasse lebewesen muss hier
aufgerufen werden, da ein anderer Konstruktor der
lebewesen.__init__(self) Klasse hund vorhanden ist.
In der Klasse Fahrzeug sollte es eine Funktion geben, die den Preis
ausgibt. In der Klasse Auto soll es noch eine Funktion geben, welche die
Marke ausgibt.
Tipps
Initialisieren mit __init__, Konstruktor auch beim ERBEN aufrufen.
class Fahrzeug:
def __init__(self,km,preis):
Lösung Aufgabe 7 self.kilo = km
self.p = preis
def getprice(self):
print(self.p)
class Auto(Fahrzeug):
def __init__(self,Farbe,Marke,km,preis):
self.c = Farbe
self.m = Marke
Fahrzeug.__init__(self,km,preis)
def getbrand(self):
print(self.m)
mini = Auto("GRAU","TESLA",39294,100000)
mini.getprice()
mini.getbrand()
Daten einlesen Open öffnet eine Text Datei und speichert
diese in f. Achtung Text Datei muss sich im
Projektordner befinden.
f = open("pykurs.txt","r")
print(f.read())
Tipps
f=open(….,w
f.close
f = open(…,r
f = open("pykurs2.txt","w")
f.write("So,\n")
f.write("Please take this seat \n")
f.write("and close your eyes, \n")
f.write("open your mind \n")
f.write("and we will learn how to fly \n")
f.close()
f = open("pykurs2.txt","r")
print(f.read())
Exceptions bringen Programme zum Absturz.
Try and Exception Dies kann wie folgt verhindert werden:
try:
Tipps
Try, except NameError, while true, break, eval…
Lösung Aufgabe 9
while True:
try:
n=eval(input("Gib eine Zahl ein "))
except NameError:
print("Das war keine Zahl, nochmal")
else:
break
print(n)
Tensorflow
https://developers.google.com/machine-learning/crash-course/
https://www.tensorflow.org/tutorials/keras
pyautogui
Nützliches
NumPy’s array type augments the Python language with an efficient
data structure useful for numerical work, e.g., manipulating
matrices. NumPy also provides basic numerical routines, such as tools
for finding eigenvectors.
SciPy contains additional routines needed in scientific work: for
example, routines for computing integrals numerically, solving
differential equations, optimization, and sparse matrices.
The matplotlib module produces high quality plots. With it you can turn
your data or your models into figures for presentations or articles. No
need to do the numerical work in one program, save the data, and plot
it with another program.
Nützliches
https://www.jetbrains.com/pycharm/ # Pycharm
https://py-tutorial-de.readthedocs.io/de/python-3.3/index.html
#aktuelles Python Tutorial
https://www.python.org/doc/
#offizielle Webseite mit einer Dokumentation
Ende