Python Grundkurs: Teil 2: Schleifen

Nein, kein Mittel zur Verzierung :-). Schleifen kommen immer dann zum Einsatz, wenn etwas x mal wiederholt werden soll, oder so lange wiederholt werden soll, bis ein gewisser Zustand erreicht worden, oder durch den User ausgelöst worden ist.

Unterschieden wird hier zwischen while und for. While kommt dann zum Zug, wenn man nicht weiß, wie oft die Schleife durchlaufen wird. (So lange bis der Anwender das Programm stoppt).

For hingegen ist in der Laufzeit (Schleifendurchläufe) limitiert. (Man weiß, dass die Schleife 5x durchlaufen soll):

 

Beispiele – for – Schleife

for i in range(1,11):
   x = raw_input('Wert eingeben: ')

Beispiel whileSchleife

x = "1"
while x != "":
   x = raw_input ('Eingabe :')

An obigem Beispiel sieht man nun den Unterschied. In der while Schleife hängt es vom Benutzer ab, wann er als Wert nichts eingibt (also nur Return drückt) und somit die while Bedingung nicht mehr erfüllt wird. Sie besagt, dass die Schleife so lange durchlaufen wird, so lange der Wert der Variablen x nicht „“ (also leer) ist.

Wir wissen also bei while nicht, wann der Anwender nichts mehr eingeben will!

Python Grundkurs: Teil 1.2: Grundlegende Operatoren

Variablen haben wir bereits kennen gelernt. Nun geht es darum, auch kurz einen Blick auf die grundlegenden Operatoren zu werfen. Hierbei gibt es vor allem bei = und == einen großen Unterschied!

Während folgender Code bedeutet, dass die Variable x den Wert 10 zugewiesen bekommt:

x = 10

bedeutet folgendes, dass x mit dem Wert 10 verglichen wird (sozusagen: Entspricht x dem Wert 10?)

x == 10

Gut einprägen!

Weitere Operatoren

  • + –
  • * /
  • < > >= <=
  • % (Modulooperator – zeigt den Rest einer Division)
  • or, and, not, in

Genauer betrachten möchte ich hier kurz den Modulooperator. Dieser gibt – wie bereits kurz angeschnitten, den Rest einer Division aus.

Das probieren wir gleich mal aus und tippen direkt in der Pythonshell folgendes ein:

10%3

Als Ausgabe erhalten wir 1. Warum? Weil 3 in 10 3x enthalten ist (3×3 = 9) Rest = 1. Modulo (also %) gibt immer den Rest einer Division aus.

 

 

Python Grundkurs: Teil 1.1: Datentypen

Nun kurz zu den Datentypen, die eine sehr wichtige Rolle spielen!

Der Befehl raw_input nimmt Einnahmen entgegen und speichert diese standardmäßig als String (also Zeichenkette) ab. Dies lässt sich leicht durch den Befehl type(variablenname) überprüfen.

name = raw_input('Bitte Ihren Namen eingeben:')
datentyp = type(name)
print datentyp

Diese 3 Zeilen muss man nun allerdings in den Editor eingeben und abspeichern, bevor man das Programm starten kann.

Was passiert?

  1. Man gibt seinen Namen ein. Dieser wird der Variable name zugewiesen.
  2. der Variable datentyp wird der Wert der Ausgabe des Befehles type zugewiesen. In Worten: „Sag mir welcher Datentyp die Variable name ist“.
  3. der print-Befehl gibt diesen Wert schließlich als <type ’str‘> aus. Wir haben hier also eine Zeichenkette eingegeben.

 Einige weitere Datentypen

  • int (Integer – Ganze Zahlen)
  • float (Kommazahl)
  • long (lange Integerzahlen)
  • complex (komplexe Zahlen)

Was, wenn man mit den Werten rechnen will – Mit Strings kann man das doch nicht!

Richtig! Mit Zeichenketten kann man keine Berechnungen durchführen. Deshalb hängt folgendes Programm die 2 Werte zusammen, anstatt diese zu addieren:

wert1 = raw_input('Wert1: ')
wert2 = raw_input('Wert2: ')
print wert1+wert2

Wenn man mit den beiden Werten rechnen will, muss das so aussehen:

wert1 = int(raw_input('Wert1: '))
wert2 = int(raw_input('Wert2: '))
print wert1+wert2

Warum?

Berechnungen können nur mit Zahlen (Datentyp = Zahl) durchgeführt werden. Durch die Verwendung von int() „weiß“ Python, dass die Eingabe als Integer zu verstehen ist. Strings können nicht zu Berechnungszwecken herangezogen werden. Integerzahlen schon!

Statt int() könnten wir hier auch float() verwenden. Die Inputanweisung würde dann so aussehen:

wert1 = float(raw_input('Wert1: '))

Wir könnten hier dann zum Beispiel: 1.2 eingeben – also eine Kommazah

Übungsaufgabe 1

Schreibe ein Programm, dass 1. Deinen Namen abfragt, danach  2 Werte abfragt – diese addiert und zuletzt folgendes ausgibt:

Hallo Name, die Berechung ergibt Ergebnis. (Wobei Name eine Variable ist und das Ergebnis natürlich der Berechnung entspricht).

Tipp: Die Verkettung von Strings und Zahlen erfolgt mit Hilfe des print Befehles in dieser Art und Weise (, statt +):

print 'Hallo ', name, 'die Berechnung ergibt ', ergebnis

Lösung

name = raw_input('Bitte deinen Namen eingeben: ')
wert1 = int(raw_input('Wert1: '))
wert2 = int(raw_input('Wert2: '))
ergebnis = wert1 + wert2 print 'Hallo ',name,' die Berechnung ergibt ',ergebnis

Python Grundkurs: Teil 1: Einfache Ein- und Ausgabe

Ausgabe von Text (Befehl print)

Um Texte (aber auch Variablen) ausgeben zu können, bedient man sich des Befehls print. Da wir uns in Python 2.7.2 befinden, ist dieser Befehl keine Funktion (wie z.B. in Python 3.x). Um einen Text auszugeben, schreiben wir folgenden Befehl in Idle:

print 'Hallo, hier spricht Python'

danach starten wir „das Programm“ und sehen, dass – wie erwartet – Hallo, hier spricht Python ausgegeben wird.

Zusatzinfo:

  • Diese Übungen (auch die folgenden!) kann man auch direkt in der Pythonshell eingeben, ohne zuvor die Datei zu erstellen und zu speichern
  • Variablen = Platzhalter, die Werte speichern können
  • Statt dem einfachen ‚ kann auch “ verwendet werden

Eingabe durch den Anwender (Befehl raw_input)

Um nun einen Wert (Text oder Zahl) eingeben zu können, müssen wir zuerst einen Platzhalter schaffen. Dieser wird als Variable bezeichnet. Eine entsprechende Zuordnung wird wie folgt erstellt:

name = raw_input('Bitte geben Sie Ihren Namen ein:')

Was passiert hier? der Variable name wird eine Eingabe zugewiesen, die vom Anwender kommt. Gibt man z.B.: Daniel ein, bekommt die Variable name den Wert Daniel.

Nun prüfen wir, ob die Variable auch einen Wert gespeichert hat:

print name

Hierbei sollte nun der Wert ausgegeben werden, der eingegeben wurde.

„Zusammenhängen“ von Ausgaben

Will man einen String und den Wert einer Variable mit einem print – Befehl ausgeben ist auch das möglich:

print 'Hallo, ' + name + ' wie geht es dir?'

Die Verkettung erfolgt also mit dem +.

 

Python Grundkurs – Warum?

Wiedermal bin ich nun bei Python gelandet. Ich hatte ja bereits im Vorjahr einige Anstrengungen unternommen um „Python – Fit“ zu werden. Leider hat mich eine Erkrankung in meinen Bestrebungen weit nach hinten geworfen. Nun will ich es wieder „angehen“.

Umgebung

  • Python 2.7.2 (Arbeitsumgebung IDLE)
  • Linux Mint Debian Edition (2011/09)
  • Konsolenbasiert d.h. wir programmieren nur Programme, die sich der Konsole bedienen … mein Traum geht ja in Richtung wxpython 🙂

Warum gerade Python?

Nun, Python hat einen recht einfach  lesbaren Code. Nichts desto trotz hat es einen immensen Funktionsumfang, der im modularen Aufbau begründet ist. Man erhält recht schnell ein laufendes Programm. Erste Erfolge stellen sich bald ein. Das macht Spaß!

Wozu das alles – es gibt ja schon genug Pythonresourcen im Netz…

Richtig! Jedoch macht mir bloggen Spaß. Ganz abgesehen davon, schreibe ich hier auch nicht ganz uneigennützig. Der Gedanke dahinter ist  a.) das Gelernte zu festigen und b.) hoffe ich, dass ich es so gut wiedergebe, dass auch jemand, der noch nie programmiert hat, etwas davon hat.

Ich habe im Moment keine Ahnung, wann ich an meine Grenzen stoße. Man möge mir verzeihen, wenn ich nicht immer den direkten Lösungsweg nehme, oder Dinge viel zu kompliziert löse. (Dass ich zu kompliziert denke, hat mir meine Matheprofessor schon immer gesagt 🙂 ).

Für Tips, Anregungen, negative und positive Kritik steht wie immer die Kommentarfunktion, oder aber auch die Emailadresse im Impressum zur Verfügung.