Post on 05-Apr-2015
transcript
Programmieren mit PYTHON MB-Fortbildung 18.01.2011
Einführung in PythonEinführung in Python
OStR Dipl. Ing. Carsten KraftOStR Dipl. Ing. Carsten Kraft
Programmieren mit PYTHON MB-Fortbildung 18.01.2011
Die Python ShellDie Python ShellIn der IDLE können Sie Anweisungen und Programmzeilendirekt eingeben.Achtung: Die Anweisungen können hier nicht gespeichert werden
Programmieren mit PYTHON MB-Fortbildung 18.01.2011
Der EditorDer EditorIm Programmpaket ist auch ein Editor enthalten, es kann aber auchein beliebiger anderer Editor (z.B. der unter Windows) verwendet werden, um Programme zu schreiben und abzuspeichern.
Wichtig: Beim Abspeichern immer die Endung .py verwenden!
Programmieren mit PYTHON MB-Fortbildung 18.01.2011
Hallo WeltHallo WeltIDLEGeben Sie hinter die Eingabeaufforderung in der IDLE (>>>) die
Anweisung print “Hallo Welt!“
ein und drücken Sie danach die Eingabetaste.
Die Farben werden automatisch erzeugt.
Programmieren mit PYTHON MB-Fortbildung 18.01.2011
Hallo WeltHallo WeltEditorGeben Sie im Editor die Anweisungen
#!/usr/bin/python
print ´´Hallo Welt!´´
ein und speichern das Programm unter hallowelt.py ab.Zum Aufrufen
anklicken oder die Taste F5 drücken.
Nur für Mac OS X, Linux u. ä. ist diese Zeile im Listing,die sogenannte Shebang-Line oder Magic Line nötig,damit die Python-Programmdateien direkt ausführbargemacht werden können.Unter Windows wird die Shebang-Line ignoriert.
Programmieren mit PYTHON MB-Fortbildung 18.01.2011
Umlaute ä, ö, ü sowie das ß kommen im normalen ASCII-Zei-chensatz nicht vor. Deshalb wird das Listing um die Zeile
#!/usr/bin/python
print ´´Hallo Welt´´print ´´Käse´´
ergänzt. Probieren Sie es aus.
# encoding: iso-8859-1 oder # -*- coding: cp1252 -*-
Umlaute, SonderzeichenUmlaute, Sonderzeichen
Programmieren mit PYTHON MB-Fortbildung 18.01.2011
DatentypenDatentypenPython kann mit einer ganzen Reihe von eingebauten Datentypenumgehen. Dazu zählen unter anderem:•Zahlen (int, long, float, complex)•Boolesche Variablen (bool) •Zeichenketten (str, unicode )•Listen (list)•Tupel (tuple) •Dictionaries (dict, auch "assoziatives Array" oder "Hash")•Funktionen, Klassen, Methoden •Dateien •Module
Programmieren mit PYTHON MB-Fortbildung 18.01.2011
ZahlenZahlenGeben Sie in der Shell folgendes ein:
Zahlen
11.01+2 1.0+21/31.0/311**203*43+5j3+5j-(2+7j)
Python Datentyp
1 int1.0 float3 int3.0 float0 int0.3333333333333333 float672749994932560009201L long13 int(3+5j) complex(1-2j) complex
Programmieren mit PYTHON MB-Fortbildung 18.01.2011
Python
'a''a'SyntaxError: invalid syntax (Text)'dies ist ein "Text"! ''12‚'aaa‚Traceback (most recent call last): File "<pyshell#15>", line 1, in <module> ANameError: name 'A' is not defined
ZeichenkettenZeichenkettenGeben Sie in der Shell folgendes ein:
Zeichenketten
’a’"a" "dies ist ein "Text "! "’dies ist ein "Text "! ’ ’1’+’2’3*’a’A
Programmieren mit PYTHON MB-Fortbildung 18.01.2011
Rechnen mit PythonRechnen mit PythonMachen Sie sich die Auswirkung der Eingaben an folgendenBeispielen klar, indem Sie diese direkt in die Shell eingeben:
sqrt(4)sin(0)pi
Geben Sie nun zuerst ein:
from math import *
und wiederholen Sie danach die obigen Eingaben
Python
Traceback (most recent call last): File "<pyshell#*>", line 1, in <module> sqrt(4)NameError: name 'sqrt' is not defined
Programmieren mit PYTHON MB-Fortbildung 18.01.2011
ListenListenListen enthalten eine Folge mehrerer beliebiger Python-Objekte.Geben Sie diese direkt in die Python-Shell ein.
[ ] # leere Liste[1, "abc"] # zwei ElementeL = [1, "abc", [5, 7], 3] # verschachtelte ListeL[0], L[1], L[2], L[2][0], L[-1], L[1:], L[1:3], L[:2] # Indizierung
Programmieren mit PYTHON MB-Fortbildung 18.01.2011
TupelTupelTupel sind Listen sehr ähnlich, lassen sich aber nach der Definitionnicht mehr verändern. Beachten Sie, dass Tupel mit nur einemElement mit einem Komma vor der schließenden Klammer ge-schrieben werden, um sie von Ausdrücken zu unterscheiden. Geben Sie diese direkt in die Shell ein.
T = () # leeres TupelT = (1,) # ein ElementT = (1, "abc") # 2 ElementeT[0] = 2 # ÄnderungsversuchT[0], T[1], T[-1] # Indizierung
Programmieren mit PYTHON MB-Fortbildung 18.01.2011
DictionaryDictionaryEin Dictionary ist wie ein Adressbuch, d.h. einem Schlüssel (Namen)wird ein Wert (Kontaktdaten) zugeordnet. Beachten Sie, dass der Schlüssel eindeutig sein muss und dass man nur unveränderliche Objekte (wie z.B. Strings und Tupel) als Schlüssel eines Dictionaries verwenden kann. Als Werte kann man sowohl unveränderliche als auch veränderliche Objekte benutzen. Das bedeutet im Wesentlichen,dass man nur einfache Objekte als Schlüssel verwenden sollte.
D = { } # leerer DictionaryD = {’a’: ’Wert1’} # ein ElementD = {’a’: ’Wert1’, ’b’: ’Wert2’} # 2 ElementeD[’a’], D[’b’] # IndizierungD[’c’]= ’Wert3’ # hinzufügen eines Elements
Programmieren mit PYTHON MB-Fortbildung 18.01.2011
IF-AnweisungIF-AnweisungDie IF-Anweisung wird benutzt, um eine Auswahl zu ermöglichen.Dazu wird eine Bedingung überprüft. Falls diese Bedingung erfülltist, wird ein Block von Anweisungen ausgeführt (der so genannteif-Block), andernfalls wird ein anderer Block von Anweisungen ausgeführt (der so genannte else-Block).Die else-Klausel ist dabei optional. Die Anzahl der elif-Blöcke (d.h. else if) ist variabel. Wichtig sind hierbei die Einrückungen.
Struktur:
if (Bedingung): Anweisungen wenn Bedingung ist Trueelse: Anweisungen wenn Bedingung ist False
Programmieren mit PYTHON MB-Fortbildung 18.01.2011
IF-Anweisung AufgabeIF-Anweisung AufgabeLaden Sie die Datei Zahlenraten_20110118 und ergänzen Sie diese um folgende Auswahl:
Ist die geratene Zahl gleich der gesuchten Zahl, dann drucken Sie den Text 'Herzlichen Glückwunsch, Sie haben die Zahl erraten. ' aus.Sonst Überprüfen Sie ob die geratene Zahl kleiner oder größer dergesuchten ist und drucken eine entsprechende Bemerkung aus.
Programmieren mit PYTHON MB-Fortbildung 18.01.2011
Lösung ZahlenratenLösung Zahlenraten#!/usr/bin/python# encoding: iso-8859-1
zahl = 23geraten = int(raw_input('Geben Sie bitte eine ganze Zahl ein:'))
if (geraten == zahl): print 'Herzlichen Glückwunsch, Sie haben die Zahl erraten.'elif (geraten < zahl): print 'Nein, die Zahl ist etwas größer.'else: print 'Nein, die Zahl ist etwas niedriger.'
Programmieren mit PYTHON MB-Fortbildung 18.01.2011
Ostertermin nach HartmannOstertermin nach HartmannLaden Sie die Datei ostern_hartmann_20110118 und ergänzen Sie die Datei um das Programm, wie es Ihnen auf dem Aufgabenblattbeschrieben wird.
Programmieren mit PYTHON MB-Fortbildung 18.01.2011
Lösung HartmannLösung Hartmann#!/usr/bin/python# encoding: iso-8859-1
jahr = input ('Geben Sie bitte das Jahr ein: ')q = jahr/4a = jahr % 19b = (204-11*a) % 30
if (b == 28 or b == 29): b = b – 1
c = (jahr + q + b - 13) % 7tag = 28 + b – c
if (tag>31): monat = 'April' tag = tag - 31else: monat = 'März'
print tag, '.', monat, jahr
Programmieren mit PYTHON MB-Fortbildung 18.01.2011
FOR-AnweisungFOR-AnweisungDie for-Schleife durchläuft jedes Objekt in einer Sequenz, was bewirkt, dass der Variablen i der Reihe nach jedes Objekt in der Sequenz zugewiesen wird, und dann der Anweisungsblock für jedendieser Werte von i ausgeführt wird. Wichtig sind hierbei die Einrückungen.
Struktur:
for i in Sequenz (z.B. range-Tupel): Anweisungen, die für jedes i durchlaufen werden
Programmieren mit PYTHON MB-Fortbildung 18.01.2011
FOR-Anweisung AufgabeFOR-Anweisung AufgabeLaden Sie die Datei Zahlenliste_for_20110118 und ergänzen Sie diese.
Erstellen Sie eine Liste mit ganzen Zahlen von einer unteren Grenzebis zu einer oberen Grenze, die eingegeben werden müssen.Verwenden Sie hierzu das Objekt range. Informieren Sie sich bittehierzu mit Hilfe der „Zusammenfassung“, wie sie ausliegt.
Programmieren mit PYTHON MB-Fortbildung 18.01.2011
Lösung Zahlenliste_forLösung Zahlenliste_for#!/usr/bin/python# encoding: iso-8859-1
ug=input('Geben Sie bitte die untere Grenze ein: ')og=input('Geben Sie bitte die obere Grenze ein: ')
for i in range(ug,og+1): print i
Programmieren mit PYTHON MB-Fortbildung 18.01.2011
WHILE-AnweisungWHILE-AnweisungEin Anweisungsblock wird wiederholt ausgeführt, solange eine zugehörige Bedingung erfüllt ist.
!!! Vorsicht: Es besteht die Gefahr von Endlosschleifen!!! (Abbruch mit Strg+C)
Struktur:
while (Bedingung): Anweisungen, wenn Bedingung ist True
Programmieren mit PYTHON MB-Fortbildung 18.01.2011
WHILE-Anweisung AufgabeWHILE-Anweisung AufgabeLaden Sie die Datei Zahlenliste_while_20110118 und ergänzenSie diese.
Erstellen Sie eine Liste mit ganzen Zahlen von einer unteren Grenzebis zu einer oberen Grenze, die eingegeben werden müssen.Informieren Sie sich bitte hierzu mit Hilfe der „Zusammenfassung“,wie sie ausliegt.
Programmieren mit PYTHON MB-Fortbildung 18.01.2011
Lösung Zahlenliste_whileLösung Zahlenliste_while!/usr/bin/python# encoding: iso-8859-1
ug=input('Geben Sie bitte die untere Grenze ein: ')og=input('Geben Sie bitte die obere Grenze ein: ')
a=ug
while a<=og: print a a=a+1