Programmieren mit PYTHON MB-Fortbildung 18.01.2011 Einführung in Python OStR Dipl. Ing. Carsten...

24
Programmieren mit PYTHON MB-Fortbildung 18.01.2011 Einführung in Einführung in Python Python OStR Dipl. Ing. Carsten OStR Dipl. Ing. Carsten Kraft Kraft

Transcript of Programmieren mit PYTHON MB-Fortbildung 18.01.2011 Einführung in Python OStR Dipl. Ing. Carsten...

Page 1: Programmieren mit PYTHON MB-Fortbildung 18.01.2011 Einführung in Python OStR Dipl. Ing. Carsten Kraft.

Programmieren mit PYTHON MB-Fortbildung 18.01.2011

Einführung in PythonEinführung in Python

OStR Dipl. Ing. Carsten KraftOStR Dipl. Ing. Carsten Kraft

Page 2: Programmieren mit PYTHON MB-Fortbildung 18.01.2011 Einführung in Python OStR 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

Page 3: Programmieren mit PYTHON MB-Fortbildung 18.01.2011 Einführung in Python OStR Dipl. Ing. Carsten Kraft.

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!

Page 4: Programmieren mit PYTHON MB-Fortbildung 18.01.2011 Einführung in Python OStR Dipl. Ing. Carsten Kraft.

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.

Page 5: Programmieren mit PYTHON MB-Fortbildung 18.01.2011 Einführung in Python OStR Dipl. Ing. Carsten Kraft.

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.

Page 6: Programmieren mit PYTHON MB-Fortbildung 18.01.2011 Einführung in Python OStR Dipl. Ing. Carsten Kraft.

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

Page 7: Programmieren mit PYTHON MB-Fortbildung 18.01.2011 Einführung in Python OStR Dipl. Ing. Carsten Kraft.

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

Page 8: Programmieren mit PYTHON MB-Fortbildung 18.01.2011 Einführung in Python OStR Dipl. Ing. Carsten Kraft.

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

Page 9: Programmieren mit PYTHON MB-Fortbildung 18.01.2011 Einführung in Python OStR Dipl. Ing. Carsten Kraft.

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

Page 10: Programmieren mit PYTHON MB-Fortbildung 18.01.2011 Einführung in Python OStR Dipl. Ing. Carsten Kraft.

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

Page 11: Programmieren mit PYTHON MB-Fortbildung 18.01.2011 Einführung in Python OStR Dipl. Ing. Carsten Kraft.

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

Page 12: Programmieren mit PYTHON MB-Fortbildung 18.01.2011 Einführung in Python OStR Dipl. Ing. Carsten Kraft.

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

Page 13: Programmieren mit PYTHON MB-Fortbildung 18.01.2011 Einführung in Python OStR Dipl. Ing. Carsten Kraft.

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

Page 14: Programmieren mit PYTHON MB-Fortbildung 18.01.2011 Einführung in Python OStR Dipl. Ing. Carsten Kraft.

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

Page 15: Programmieren mit PYTHON MB-Fortbildung 18.01.2011 Einführung in Python OStR Dipl. Ing. Carsten Kraft.

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.

Page 16: Programmieren mit PYTHON MB-Fortbildung 18.01.2011 Einführung in Python OStR Dipl. Ing. Carsten Kraft.

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

Page 17: Programmieren mit PYTHON MB-Fortbildung 18.01.2011 Einführung in Python OStR Dipl. Ing. Carsten Kraft.

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.

Page 18: Programmieren mit PYTHON MB-Fortbildung 18.01.2011 Einführung in Python OStR Dipl. Ing. Carsten Kraft.

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

Page 19: Programmieren mit PYTHON MB-Fortbildung 18.01.2011 Einführung in Python OStR Dipl. Ing. Carsten Kraft.

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

Page 20: Programmieren mit PYTHON MB-Fortbildung 18.01.2011 Einführung in Python OStR Dipl. Ing. Carsten Kraft.

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.

Page 21: Programmieren mit PYTHON MB-Fortbildung 18.01.2011 Einführung in Python OStR Dipl. Ing. Carsten Kraft.

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

Page 22: Programmieren mit PYTHON MB-Fortbildung 18.01.2011 Einführung in Python OStR Dipl. Ing. Carsten Kraft.

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

Page 23: Programmieren mit PYTHON MB-Fortbildung 18.01.2011 Einführung in Python OStR Dipl. Ing. Carsten Kraft.

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.

Page 24: Programmieren mit PYTHON MB-Fortbildung 18.01.2011 Einführung in Python OStR Dipl. Ing. Carsten Kraft.

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