Sprache: -------- if: if a == 0: if /else if a == 0: pass else: pass if / elif/else if a == 0: pass elif b == 0: pass else: pass While while True: pass for each for i in [1,2,3]: print(i) for range for i in range(1,10,2): print(i) int 2 String s=str(123) double 2 String s=str(123.4) int 2 String: iValue=str(123) double 2 String dValue=str(123.4) String 2 int iValue=int('123') String 2 float fValue=float('123.4') Anzeige des Typs print('type(var1): ', type(var1)) Python-Funktionen: ------------------ abs: var1 = abs(-12) fabs: var1 = math.fabs(-12.5) min: var1 = min([1,2,3]) max: var1 = max([1,2,3]) exp: var1 = math.exp(1) log10: var1 = math.log10(11) log(x[,base]): var1 = math.log(100,10) ==> 2 ln: var1 = math.log(11) ln(11) ==> 2.3978952727983707 sqrt: var1 = math.sqrt(2) floor abschneiden: var1 = math.floor(-12.2) => -13 var1 = math.floor(12.2) => 12 trunc: var1 = math.floor(-12.2) => -12 var1 = math.floor(12.2) => 12 round: var1 = round(12.2) => 12 var1 = round(12.5) => 12 var1 = round(12.6) => 13 var1 = round(12.66,1) => 12.7 Funktionen: ----------- void function def fktname(param1): print(param1) int function def fktname(value): print(value) return value+1 tuple function def fktname(value): print(param) # Abfrage: t[0], t[1] return (value+1, value+2) Liste: ---------- # einfache Liste liste = [1,2,13,13,35,6,7,8,9] print("Ausgabe mit foreach:") for item in liste: print(item) print() print("Ausgabe mit for range:") for i in range(0,len(liste),1): print( liste[i] ) Methoden # Anzahl der Elemente in der Liste: len(liste) # Min-Element: min(liste) # Max-Element: max(liste) # Suche 6: liste.count(6) # Position von 13: liste.index(13) # insert: liste.insert(42,1) # liste.reverse() Dictionary: ----------- noten = {27456:1.3 , 27457:3.3 , 27459:2.7 , "Brücke":"Extrakäse" } for key in noten: print(key) print("Ausgabe mit einem Key:") print( noten[27456] ) for key in noten.keys(): print(key, " ",noten[key]) print("Anzahl der Elemente in der Dictionary", len(noten) ) Mengen/Set: ---------- s = set( (2,3,5,7) ) for item in s: print(item) print() s.add("Pizza") s.add("Pizza") for item in s: print(item) print() print(len(s)) Exception: --------- try: a = int('abc') except ValueError as e: print("fehlerhafte Zahl") # IndexError # ArithmeticError # EOFError # IOError # AttributeError hat kein Instanz hat kein Attribut # MemoryError # OverflowError # ZeroDivisionError # raise ValueError('represents a hidden bug, do not catch this') Exception, komplette Syntax: try: a = int('abc') except ValueError as e1: print("fehlerhafte Zahl") except OverflowError as e2: print("overflowError") else: #ausgefuehrt, wenn keine Exception erzeugt wurde pass finally: #immer ausgefuehrt pass # raise ValueError('represents a hidden bug, do not catch this') Klassen -------- einfache Klasse mit toString: class Punkt: def __init__(self, x, y): self.x=x self.y=y def __str__(self): # toString return str(self.x)+", "+str(self.y) # main p1 = Punkt(12,3) p1.x=42 print(p1.x,p1.y) Klasse mit setter/getter: class Punkt: def __init__(self, x): self._X=x def getX(self): return self._X def setX(self,x): self._X=x # main p1 = Punkt(12) p1.setX(42) print(p1.getX()) Zwei Klassen: class Schiff: def __init__(self, name): self._name=name def getName(self): return self._name def setName(self,name): self._name=name class Frachter(Schiff): def __init__(self, name, frachtvolumen): Schiff.__init__(self, name) self._frachtvolumen=frachtvolumen def getFrachtvolumen(self): return self._frachtvolumen def setFrachtvolumen(self,frachtvolumen): self._frachtvolumen=frachtvolumen def __str__(self): return Schiff.getName(self)+" "+str(self.getFrachtvolumen()) # main s1 = Schiff("Titanic") s1.setName("Queen Mary") print(s1.getName()) f1 = Frachter("KaesePizza", 12000) f1.setFrachtvolumen(14000) print(f1) Eingabe -------- Eingabe eines Strings, Konsole: inp = input("Geben Sie bitte keinen Text ein") print(inp) Eingabe eines Int, Konsole: zahl = int(input("Geben Sie bitte eine Zahl ein")) print(zahl) Eingabe eines Float, Konsole: zahl = float(input("Geben Sie bitte eine Zahl ein")) print(zahl) Betriebssysteme/IO ------------------- Abfrage der Parameter: import sys print(len(sys.argv)) if len(sys.argv)>0: # kompletter Name des Skriptes print(sys.argv[0]) UI-Elemente ------------- UI-Rahmen: import tkinter class MyApp(tkinter.Frame): def __init__(self, master=None): tkinter.Frame.__init__(self, master) self.pack(expand=True, fill="both") self.setGUI() def setGUI(self): self.inputui = tkinter.Entry(self) self.inputui.pack() self.bnEsc = tkinter.Button(self) self.bnEsc["text"] = "Ende" self.bnEsc["command"] = self.quit self.bnEsc.pack(side="right") root = tkinter.Tk() root.title("Mein Fenster") root.geometry("250x100") app = MyApp(root) app.mainloop() frame: frame1 = tkinter.Frame(self) frame1.pack(fill="x", side="top" ) # fill=x,y,both Labelframe: labelframe = tkinter.LabelFrame(self, text="Caption") labelframe.pack(fill="both", expand="yes") label: self.label1 = tkinter.Label(self) self.label1["text"] = "Eingabe" self.label1.pack() Textbox, Entry: self.inputui = tkinter.Entry(self) self.inputui.pack(fill="x",padx="5",pady="5") Spinbox: self.spinbox = tkinter.Spinbox(inputframe, from_=0, to=10) # self.spinbox = tkinter.Spinbox(inputframe,values = ("AI","VW","W")) self.spinbox.pack(fill="x",padx="5",pady="5") Button: self.bnOk = tkinter.Button(self) self.bnOk["text"] = "Ok" self.bnOk["command"] = self.quit self.bnOk.pack(side="right") Radiobutton: self.group = tkinter.LabelFrame(self, text="Noten") self.group.pack(fill="both", expand="yes") self.rb1= tkinter.Radiobutton(self.group, text="Eins", value="Eins") self.rb1.pack() self.rb2= tkinter.Radiobutton(self.group, text="Zwei", value="Zwei") self.rb2.pack() self.rbProperty = tkinter.StringVar() self.rbProperty.set("Zwei") self.rb1["variable"] = self.rbProperty self.rb2["variable"] = self.rbProperty Checkbutton: self.group = tkinter.LabelFrame(self, text="Noten") self.group.pack(fill="both", expand="yes") self.chk1= tkinter.Checkbutton(self) self.chk1["text"] = "Eins" self.chk1.pack() self.chk2= tkinter.Checkbutton(self) self.chk2["text"] = "Zwei" self.chk2.pack() self.chkProperty1 = tkinter.BooleanVar() self.chkProperty1.set(True) self.chk1["variable"] = self.chkProperty1 self.chkProperty2 = tkinter.BooleanVar() self.chkProperty2.set(False) self.chk2["variable"] = self.chkProperty2 Listbox: sb = tkinter.Scrollbar(self) sb.pack(fill="y", side="right") self.listbox = tkinter.Listbox(self) # selectmode="single, extended orient="horizontal" " self.listbox.pack(expand=True, fill="both") self.listbox["yscrollcommand"] = sb.set sb["command"] = self.listbox.yview self.listbox.insert("end", "abc") Editor, Text: sbx = tkinter.Scrollbar(self, orient="horizontal") sbx.pack(fill="x", side="bottom") sby = tkinter.Scrollbar(self) sby.pack(fill="y", side="right") self.editor = tkinter.Text(self) self.editor.config(wrap="none") # wrap="word" word char self.editor.pack(expand=True, fill="both", padx="5",pady="5") self.editor["xscrollcommand"] = sbx.set sbx["command"] = self.editor.xview self.editor["yscrollcommand"] = sby.set sby["command"] = self.editor.yview Scrollbar horizontal: sby = tkinter.Scrollbar(self) sby.pack(fill="y", side="right") # UI-Element # self.element["yscrollcommand"] = sbx.set #sby["command"] = self.element.yview Scrollbar vertikal: sbx = tkinter.Scrollbar(self, orient="horizontal") sbx.pack(fill="x", side="bottom") # UI-Element # self.element["xscrollcommand"] = sbx.set sbx["command"] = self.element.xview UI Events, Getter, Setter -------------------------- String Property Variable: self.var_inputfield1 = tkinter.StringVar() self.var_inputfield1.set("12") self.inputui1["textvariable"] = self.var_inputfield1 Int Property Variable: self.var_inputfield1 = tkinter.IntVar() self.var_inputfield1.set("12") self.inputui1["textvariable"] = self.var_inputfield1 Double Property Variable: self.var_inputfield1 = tkinter.DoubleVar() self.var_inputfield1.set("12") self.inputui1["textvariable"] = self.var_inputfield1 CheckButton, boolean Property: self.chkProperty1 = tkinter.BooleanVar() self.chkProperty1.set(True) # self.chkProperty1.get() self.inputui1["textvariable"] = self.chkProperty1 Listbox, insert: self.listbox.insert(0,"abc") Listbox, add self.listbox.insert("end","abc") Listbox, select: indizes = self.listbox.curselection() # tupel, selectmode=extended index = indizes[0] Listbox, get item = self.listbox.get(index) Listbox, delete self.listbox.delete(0,"end") Text, insert self.editor.insert("end","abc") Text, delete self.editor.delete(1.0,"end") UI Config --------- foreground: uiElement.config(fg="red") background: uiElement.config(bg="yellow") anchor: uiElement.config(anchor="n") # n, ne, e, se, s, sw, w, wn, center justify: uiElement.config(justify="tkinter.LEFT") # LEFT, RIGHT, or CENTER Dialoge -------- MessageBox OK Cancel: messagebox.askokcancel( "Meldung", "Ihre Festplatte wird formatiert") # icon='question', error, warning, info, question MessageBox Yes No: result = messagebox.askyesno("Delete", "Are You Sure?", icon='question', default='no') if result == True: messagebox.showinfo("Deleted","Deleted") else: messagebox.showinfo("Not Deleted","Not Deleted") # icon='question', error, warning, info, question MessageBox Yes No Cancel: result = messagebox.askyesnocancel( "Beenden", "Änderungen speichern?") if result == True: messagebox.showinfo("Beenden","Save") elif result == False: messagebox.showinfo("Beenden","No Save") elif result == None: messagebox.showinfo("Beenden","No Close") else: messagebox.showinfo("Beenden","Fehlerhafte Abfrage") # icon='question', error, warning, info, question MessageBox Retry Cancel: result = messagebox.askretrycancel( "Datei öffnen", "Fehler beim Öffnen, noch einmal versuchen?") if result == True: messagebox.showinfo("Datei öffnen","Noch einmal") else: messagebox.showinfo("Datei öffnen","Ende, kein weiterer Versuch") # messagebox.askokcancel( "Note", "Sie erhalten eine 1,0", default='yes') MessageBox AskString: result = simpledialog.askstring( "Hello Python", "Hello World") if result == None: messagebox.showinfo("Eingabe","keine") else: messagebox.showinfo("Eingabe",result) MessageBox AskInt: result = simpledialog.askinteger( "Hello Python", "Hello World", initialvalue=42, minvalue=1, maxvalue=99) if result == None: messagebox.showinfo("Eingabe","keine") else: messagebox.showinfo("Eingabe",result) MessageBox AskFloat: result = simpledialog.askfloat( "Hello Python", "Hello World", initialvalue=42.0, minvalue=1.0, maxvalue=99.9) if result == None: messagebox.showinfo("Eingabe","keine") else: messagebox.showinfo("Eingabe",result) MessageBox openDialog: filename = filedialog.askopenfilename(title="Dateien laden", initialdir="D:/Daten", multiple=False, filetypes=( ("Pythondateien",".py" ),("Alle Dateien","*.*" ) ) ) if filename: messagebox.showinfo("Eingabe",filename) else: messagebox.showinfo("Auswahl","Abbruch") MessageBox saveDialog: filename = filedialog.asksaveasfilename(initialfile="Beispiel.py", title="Dateien laden", initialdir="D:\Python\", filetypes=( ("Pythondateien",".py" ),("Alle Dateien","*.*" ) ) ) if filename: messagebox.showinfo("Auswahl",filename) else: messagebox.showinfo("Auswahl","Abbruch")