SFZ FN Sj. 13/14 Python 1 Grundlagen Inf K1/2 Sj 13/14

Slides:



Advertisements
Ähnliche Präsentationen
OStR Dipl. Ing. Carsten Kraft
Advertisements

Forschungszentrum caesar
Zusammenfassung der Vorwoche
Anleitungen zum Umgang mit Computerprogrammen erstellen
IrfanView starten Doppelklick Es erscheint dieses Fenster.
Java: Grundlagen der Sprache
GRASS - Anwendungsbeispiel
Datentyp- umwandlung. Literale sind: Bezeichner mit einem festen Wert wie z.B:
Polymorphie (Vielgestaltigkeit)
Objekte und Arbeitsspeicher
Dynamischer Speicher. In einer Funktion wird z.B. mit der Deklaration int i; Speicher auf dem sogenannten Stack reserviert. Wenn die Funktion verlassen.
ARRAY oder FELD oder VEKTOR
Werkzeuge und Softwareumgebung von Christian Michele.
Grafstat Ein Programm zum Erstellen von Fragebögen.
Schiller-Gymnasium Hof Manuel Friedrich OStR, PHP – Variablen und Formulardaten speichern! © 2010 Manuel Friedrich - Wie.
Excel Kurs Teil I Excel starten, Verknüpfungen auf dem Desktop anlegen. F. Bäumer.
Concurrent Versions System
Einführung in Visual C++
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
Seite Common Gateway Interface. Konzepte. Übersicht 1Einleitung 2Was ist CGI? 3Wozu wird CGI verwendet? 4Geschichtlicher Überblick 5Grundvoraussetzungen.
SQL PHP und MySQL Referat von Katharina Stracke und Carina Berning
Automatische Übersetzungen mit Google
Einführung in die Programmiersprache C 1
Susanne Schärer Donnerstag, 6. Januar 2011
Herzlich Willkommen zu „Einführung in die Programmierung mit Java“
Windows Befehlsskript
O.Univ.-Prof. Dr. Dimitris Karagiannis Datenbanken administrieren mit phpMyAdmin Martin Marinschek
Java und Eclipse.
HORIZONT 1 XINFO ® Das IT - Informationssystem Java Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
Proseminar Programmiersprachen Python
ANDREAS LOHR, OLONDA S.R.O. Einfach anfangen mit HTML.
C-Einstieg. Agenda 1Vorbereitung 2Aufbau eines Programms 2.1Header 2.2 Methoden 2.3Main 3Datentypen & Variablen 4Operatoren(+, -, *, /) 5Logik 5.1IF 5.2Switch.
PHP Basic.
Handbuch zum Erstellen eines Online-Shops
Herbert Walter PIXINSIGHT 1.7 SPEICHERN JPEG Herbert Walter
Dynamische Webseiten-Generierung
Einführung in PHP.
Einführung in PHP 5.
Webtodate Start Diese Unterlagen und das Produkte e-learning zu Webtodate sind nur für Unterricht mit SchülerInnen frei kopier- und einsetzbar! Für Erwachsenenkurse.
Programmieren in C Grundlagen C 2
____________________________________________________________________________________________________________________________________________ Arbeit, Bildung.
SFZ Sj 13/14 GZG FN W.Seyboldt 1 SFZ FN Sj. 13/14 Python Grundlagen.
SFZ FN Sj. 13/14 Python Grundlagen InfK12 Sj 13/14 GZG FN W.Seyboldt.
SFZ FN Sj. 13/14 Python 3 Rekursion Inf K1/2 Sj 13/14
SFZ FN Sj. 13/14 Python 2 Turtle Inf K1/2 Sj 13/14 GZG FN W.Seyboldt.
Erstelle deine eigene Timeline
HTML Einführung.
Inf K1/2 Sj 13/14 GZG FN W.Seyboldt 1 SFZ FN Sj. 13/14 Python Klassen und Objekte.
CompuTreff: „Blog“ und „Skype“ Wichtig! Schauen Sie sich die Kassensturz- Sendung vom 11. November 2008 an. Thema Informations-Sammler „Google“
Java Syntaxdiagramme Buchstabe A B Z a z ... Ziffer
HEX-code für die Farbe weiß: #FFFFFF Änderung von Inhalt & Darstellung Inhalt & Darstellung HTML Javascript CSS.
Alois Schütte Advanced System Programming 2 Interprozeßkommunikation  2.1 JVM Ablaufumgebung  2.2 Java Native Interface (JNI)  Verwendung von.
Blockseminar Allgemeine Technologien II Dozent: P. Sahle März 2009 PHP in HTML Referentin: Angela Brinck.
Anführungszeichen?! echo 'Apfel$atf'; // ergibt: Apfel$aft
Astronomie NWT 9 GZG FN Grundlagen Astronomie, Kl. 9, Einführung
Programmierungssprache PERL
Delphi Chars und Strings
Pool Informatik 5 GZG FN Sj. 11/12
PHPmyadmin Maya Kindler 6c.
Pool Informatik, Sj 11/12 GZG FN W.Seyboldt 1 Pool Informatik 5 GZG FN Sj. 11/12 s.
Felder (Arrays).
Pool Informatik, Sj 11/12 GZG FN W.Seyboldt 1 Pool Informatik 5 GZG FN Sj. 11/12 Kopieren, Daten, Programme.
Pool Informatik 5 GZG FN Sj. 11/12
Pointer. Grundsätzliches: Im Arbeitsspeicher werden Daten gespeichert. Um auf die Daten eindeutig zugreifen zu können, werden diesen Daten Adressen zugeordnet.
J. Nürnberger2007 / 081 Tabellenkalkulation (3) Arbeiten mit Formeln am Beispiel von OpenOffice.org Calc.
Arbeiten mit dem Terminal
Programmierung mit Scratch
Coden mit Python Was sind deine Erfahrungen mit Programmieren?
Datentyp- umwandlung.
 Präsentation transkript:

SFZ FN Sj. 13/14 Python 1 Grundlagen Inf K1/2 Sj 13/14 GZG FN W.Seyboldt

Python Die Sprache wurde Anfang der 1990er Jahre von Guido van Rossum in Amsterdam als Nachfolger für die Programmier-Lehrsprache ABC entwickelt. Version 1: 1994 Sie wird an Unis häufig in Naturwissenschaften verwendet, aber auch z.B. bei Google Rossum war und ist begeistert von Monty Python’s Flying Circus. Literatur: On-Line Kurs Bundeswettbewerb Informatik http://cscircles.cemc.uwaterloo.ca/using-website-de/ Hello Words: Programmieren für Kids und andere es ist einfach zu lesen. A Byte of Python http://abop-german.berlios.de/ engl. Original: http://www.swaroopch.com/notes/Python Kaiser, Ernesti: Python Handbuch, Vers.2.5 http://openbook.galileocomputing.de/python/ A Primer on Scientific Programming sehr gut, aber anspruchsvoller http://ebooksplanet.net/others/5259-a-primer-on-scientific- programming-with-python-2nd-edition.html GZG FN W.Seyboldt Inf K1/2 Sj 13/14

Informatikwettbewerb Seit Jahren gibt es den Informatik-Wettbewerb http://www.bundeswettbewerb-informatik.de/ Auf dieser Seite wird seit Sept 2013 ein Kurs Python angeboten. http://www.bundeswettbewerb-informatik.de/index.php?id=644&tx_ttnews[tt_news]=229&cHash=26d80562dbd7960019acc5fdc3f3b431 Wir registrieren uns dort: http://cscircles.cemc.uwaterloo.ca/using-website-de/ Guru: seyboldt Erste HA: Bearbeite Kapitel 0,1,2 GZG FN W.Seyboldt Inf K1/2 Sj 13/14

Python mit der IDE Eclipse Start von EcPy EcPy = Python mit Eclipse portable Kopiere es von P:\Freigabe\PoProgs\Informatik nach H:\ und auf den Stick Klicke auf StarteEcPy in EcPy. Wähle als Workstation den vorgeschlagenen Ort. Erstelle einen Projekt PyK01 (>File>new >PyDev Projekt >Gib den Namen PyK01 ein >Finish) Gehe beim Projekt PyK01 zu scr, klicke mit der rM auf scr und >PyDev Package >Wähle den Namen A >finish GZG FN W.Seyboldt Inf K1/2 Sj 13/14

Modul = Programm A_eins.py Ein Python-Programm heißt auch Modul: klicke mit rM auf das Package A >new >Pydev Modul und gib a_eins ein Unterschied zur Shell Eine Programmzeile wird nicht ausgeführt, wenn man die Returntaste drückt, sondern erst, wenn man das Programm mit startet. Die Ausgabe erfolgt im mittleren Fenster unten. Man erstellt Programme mit vielen Zeilen, die beim Starten alle ausgeführt werden (und erst dann!) Steht in einer Zeile z.B. 3+4 so wird nicht 7 wie in der Shell angezeigt, sondern nichts. Man muss stattdessen print 3+4 eingeben und dann das Programm mit starten Schreibe den Code von a_eins.py (in PyK01_Loes/src) ab. Starte den Moduls mit einem Klick auf GZG FN W.Seyboldt Inf K1/2 Sj 13/14

Variablen Variable sind Speicherplätze oder Notizzettel Wir unterscheiden zwischen Ganzen Zahlen – int() - integer Reellen Zahlen – float() – floating point Zeichenketten – str() – strings und anderen (später) In der Variablen x speichert man mit x=3.5 einen Wert ab – oder mit s = “Das ist ein Text“ Wenn man eine Variable das erst Mal benennt, wird der Speicherplatz erzeugt und mit dem Wert auf der rechten Seite des Gleichheitszeichens belegt. MERKE: Das Gleichheitszeichen ist ein Zuweisungsoperator links steht die Variable rechts steht ein Rechenausdruck, dessen Ergebnis in der Variable abgespeichert wird. GZG FN W.Seyboldt Inf K1/2 Sj 13/14

Anzeigen von Variablen print var1 Oder cf=11.0 d=3 q=cf/d print " Es ist %0.2f, durch %i = %1.4f" %(cf,d,q) Steht in einem String %i, %2.5f oder %s, so muss nach dem String ohne Komma ein %(..) folgen, in dem die Variablen in der Reihenfolge stehen, wie sie im String als %... referenziert stehen. %s = String %i = Ganze Zahl (int) %10.6f = Dezimal Zahl (float) mit mindestens 10 Ziffern insgesamt und höchstens 6 Nachkommastellen. GZG FN W.Seyboldt Inf K1/2 Sj 13/14

Eingabe Will man Daten während des Programms über die Tastatur eingeben, geht dies am einfachsten mit raw_input(„Info: "), siehe b_Eingabe.py Oder mit EasyGUI (und vielen anderen GUI-Tools, GUI = Graphical User Interface) siehe b_Eingabe2Fenster.py Oder http://easygui.sourceforge.net/tutorial/ GZG FN W.Seyboldt Inf K1/2 Sj 13/14

Bedingung if, c_if.py Programme sollen je nach Eingabe (oder Zustand bestimmter Daten) verschiedene Dinge tun. if x<y: min=x print („Bedingung x<y erfüllt") elif x==y: # == ist das mathematische Gleichheitszeichen min=x # = ist der Zuweisungsoperator print („Bedingung x=y erfüllt") else: min=y print („Bedingungen x<y und y==x falsch") print min Aufgabe: Erstelle ein Programm, das abhängig von der Note ein Lob oder einen Tadel ausspricht. Vergleichoperatoren: ==, >,>=,<,<=, != (siehe S. 73) Zwei Bedingungen sollen gleichzeitig gelten: and Es soll mindestens eine Bedingung gelten: or Negation der Bedigung: not GZG FN W.Seyboldt Inf K1/2 Sj 13/14

For-Schleife, d_for.py for i in liste: a=a+i Die Liste kann man auf verschiedene Arten bestimmen: [1,2,5,8,9] range(a,b): Alle ganzen Zahlen von a bis unter b (also ohne b!) range(b): Alle ganzen Zahlen von 0 bis unter b (also ohne b!) range(a,b,d): Alle ganzen Zahlen beginnend mit a, a+d, a+2d, … bis unter b (b ist nicht mehr dabei) [“str2“, “str2“]: Die Liste kann auch Strings (oder andere Listen) als Elemente enthalten continue: macht beim nächsten Durchgang weiter, break: Beendet die Schleife GZG FN W.Seyboldt Inf K1/2 Sj 13/14

Schleifen Muss man immer wieder dasselbe in leichten Variationen berechnen, so wendet man sinnvollerweise das Konstrukt Schleife an. Ziel: Berechne Neuer Modul d_Schleifen def bsp(a,b): s=0 for k in range(a,b+1): s=s+6*k*k*i+5*sqrt(k) return s print bsp(8,89) for in in range(a,b,n): alle ganzen Zahlen von a (einschließlich) bis b (ausschließlich, mit der Schrittweite d. Aufgaben: Berechne die Summe der Zahlen von 1 bis 100 000 Berechne die Summe der Quadratzahlen von 500 bis 2 000 000 (Hierzu benötigt der Pc ein paar Sekunden Zeit!) Berechne die 500! (500 Fakultät GZG FN W.Seyboldt Inf K1/2 Sj 13/14

Methoden / f_parabel.py In der Mathematik hat sich das Objekt Funktion bewert. Im einfachsten Fall ist eine Funktion ein Algorithmus, der jeder Eingabezahl x einen Funktionswert y zuordnet. Das kann man in Python einfach programmieren. def parabel(x): y=3*x*x-0.2*x-3 return y x=3.2 y=parabel(x) print "x=", x, " // y=", y Siehe f_parabel.py GZG FN W.Seyboldt Inf K1/2 Sj 13/14

Graph: g_FunktionenPlotSWGui.py Eine Parabel zeichnen g_FunktionenPlotSWGui.py Version mit sich bewegenden Kreis: g_FunktionenPlotSWGui2.py Zwei Funktionen siehe g_FunktionenPlotSWGui3.py Später (- oder besser: Jemand heute, der viel mit Graphen arbeit -) verwendet man vor allem die Methoden von matplotlib, siehe h_plot01_zweiFkten.py GZG FN W.Seyboldt Inf K1/2 Sj 13/14

Weiter – oder noch was üben? Falls Du noch etwas üben möchtest, oder noch ein paar Ergänzung kennen lernen, gehe zu den nächsten Folien Ansonsten gehe zu Folie 18 GZG FN W.Seyboldt Inf K1/2 Sj 13/14

Mitternachtsformel, c_MNF Die Gleichung hat die Lösungen from math import sqrt # Damit man die Wurzel benutzen kann. #Eingabe der drei Koeffizienten a,b,c =… diskriminante=b*b-4*a*c if diskriminante<0: print "Die Gleichung hat keine reelle Lösung" elif diskriminante==0: print "Die einzige Lösung ist %.4f" %(-b/2/a) else: x1=(-b+sqrt(diskriminante))/2/a x2=(-b-sqrt(diskriminante))/2/a print "Die Gleichung hat zwei Lösungen, nämlich\n\ x1=%.3f und x2=%.3f" %(x1,x2) GZG FN W.Seyboldt Inf K1/2 Sj 13/14

Weitere Aufgaben k_SumN.py: Addiere die ersten n Quadratzahlen k_HarmonN.py: Bestimme 1+1/2+1/3+1/4 … für große n Vorsicht: 1/n=0, falls n>1 und n ganze Zahl, … float(n) … k_PiNaeherungN.py: Bestimme 1-1/3+1/5-1/7+-…. Für große n Bem.: Die Folge p(n) = 1-1/3+1/5-1/7+..+(-1)^(n-1)*1/(2n-1) ist für große n fast π/4 Frage: Wie könnte man einen alternierenden Vorzeichenwechsel programmieren? k_Folge3aP1.py: Die 3a+1-Folge bestimmt sich folgendermaßen: Ist an gerade, so ist an+1=an/2, sonst 3*an+1. Bem.: Bisher führten alle Folgen schließlich zur Zahl 1, allerdings ist bis heute nicht bekannt, ob wirklich alle Folgen bei 1 enden. (siehe Collatz-Problem bei Wiki) If (i%2)==0: Wenn i bei der Division durch 2 den Rest 0 hat, ist sie gerade. k_FizzBuzz.py: FizzBuzz ist ein Spiel aus Frankreich. Schüler müssen reihum eins addieren. Wenn die Zahl ein Vielfaches von 5 ist, müssen sie statt der Zahl Fizz sagen, wenn die Zahl ein Vielfaches von 7 ist, Buzz. Damit die Sache aber nicht zu einfach ist, müssen sie bei einer Zahl, die sowohl ein Vielfaches von 5 als auch von 7 ist, FizzBuzz sagen GZG FN W.Seyboldt Inf K1/2 Sj 13/14

Würfeln Wuerfeln1.py: Würfle 10 mal und zeige die Augenzahlen an: from random import * random() Zahl x mit 0<=x<1 Wurf=int(random()*6+1) # liefert die Wurfzahlen. Wuerfeln2.py: Würfle zweimal und bilde die Augensumme. Wie groß sind die relativen Häufigkeiten der möglichen Augensummen bei 100000 Würfen? Listen erzeugen: liste=[3*i+4 for i in range(34)] oder H=list(0 for i in range(13)) GZG FN W.Seyboldt Inf K1/2 Sj 13/14

Funktionen = Methoden Wenn Programme größer werden, muss man sie gliedern – so wie man Bücher in Kapitel einteilt. Funktionen (Codebausteine) > Objekte (abgeschlossene Einheiten) > Moduln (eigenständige Dateien) Eine einfache Funktion, siehe wuerfeln01.py: def wuerfle(): zz=random() wurf=int(zz*6+1) return wurf Aufruf: wurf=wuerfle() Aufgabe: Schreibe ein Programm wuerfeln02.py, das eine Methode wuerfle2() enthält, die zweimal würfelt und die Augensumme zurückgibt. Globale Variable <-> lokale Variable GZG FN W.Seyboldt Inf K1/2 Sj 13/14

Aufgaben Funktionen Aufgabe 1: Schreibe ein Programm wuerfelnFunc1, das mit einer Methode wuerfle() 30 mal würfelt Aufgabe 2: Schreibe ein Programm wuerfelnFunc2, das mit einer Methode wuerfle() 60 000 mal würfelt und anschließend anzeigt, wie oft ein Wurf geworfen wurde. Aufgabe 3: Schreibe ein Programm wuerfelnFunc3, das mit einer Funktion wuerfle2() 100 000 mal mit zwei Würfeln würfelt und anschließend anzeigt, wie groß die relative Häufigkeit der Augenzahlen ist. Aufgabe 3: Schreibe ein Programm wuerfleSechs, das 7 000 mal so lange würfelt, bis eine Sechs geworfen wurde. Welcher Mittelwert ergibt sich dabei? Wie sieht die Verteilung aus? Aufgabe 4: Lese Sande Kap 13, S. 137-152 Aufgabe 5: Mwst.py: Erstelle ein Programm, das die Mehrwertsteuer berechnet und den Gesamtwert zurückgibt GZG FN W.Seyboldt Inf K1/2 Sj 13/14

Primzahlen SiebDesEratosthenes.py: Bestimme mit dem Sieb des Eratosthenes alle Primzahlen bis zu einer eingegebenen Zahl Programm: Primzahlen01.py: Schreibe alle Zahlen bis n auf ein Blatt. Streiche alle 2er-Zahlen Streiche alle 3er-Zahlen Gehe einfach weiter und streiche alle Mehrfache der Zahlen, die noch nicht gestrichen sind Erstelle ein Programm Primzahlen01.py, das die Primzahlen bis zu einer einzugebenden Zahl berechnet. Schreibe dazu eine Methode. GZG FN W.Seyboldt Inf K1/2 Sj 13/14

Literatur zu Python Offizielle Doku: http://www.python.org/doc/ Python Homepage http://www.python.org/ Python-wiki http://wiki.python.org/moin/GermanLanguage Python-Kurs http://www.python-kurs.eu/kurs.php Python-Kurs http://www.wspiegel.de/pykurs/kurs_index.htm Kurze Zus.: http://www.thomas-guettler.de/vortraege/python/einfuehrung.html How to Think like a Computer Scientist http://openbookproject.net/thinkcs/python/english2e [Old] Reinhard Oldenburg: Mathematische Algorithmen im Unterricht, Teubner 2011 [PyTut] Das offizielle Python-Tutorial, siehe http://docs.python.org/2/tutorial/ [SymPy] Symbolisch rechnen mit Python, siehe http://docs.sympy.org/dev/tutorial/tutorial.de.html IDE Pydev http://pydev.org/ GZG FN W.Seyboldt Inf K1/2 Sj 13/14