94
Anja Aue | 05.09.16 Python Strings H a l l o

Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

  • Upload
    others

  • View
    13

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Anja Aue | 05.09.16

PythonStrings

H a l l o

Page 2: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 2

Strings (Zeichenketten)

Zusammenfassung von alphanumerischen und numerischen Zeichen.

Folge von Zeichen, die mit Hilfe des ANSI-Zeichensatzes oder Unicode-Zeichensatzes kodiert sind.

Sammlung von Buchstaben, Zahlen, Satzzeichen, Sonderzeichen und mathematischen Symbolen in einem Feld.

Page 3: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 3

Kurze Strings

autor = "Monty Python"stueck = 'Flying Circus'

Einzeilige beliebig lange Zeichenketten. Begrenzung durch Anführungszeichen: Im String kommen

keine Anführungszeichen vor. Begrenzung durch das Apostroph: Im String kommt kein

Apostroph vor.

Page 4: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 4

Lange Strings

zitat01 =""" Mr Mousebender: Tell me, do you have any cheese at all?\n Henry Wenslydale: Yes.\n"""zitat02 = ''' This parrot is no more. It has ceased to be. It's expired and gone to meet its maker. This is a late parrot. It's a stiff. Bereft of life, it rests in peace.\n If you hadn't nailed it to the perch, it would be pushing up the daisies. It's rung down the curtain and joined the choir invisible. This is an ex-parrot. '''

Page 5: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 5

Erläuterung

Mehrzeilige Texte werden durch drei direkt aufeinanderfolgende Anführungszeichen oder Apostrophs begrenzt.

In einem mehrzeiligen String kann jedes beliebiges Zeichen, genutzt werden. Ausnahme: Der Backslash darf am Ende des Strings nicht genutzt werden.

Der String wird wie im Code angegeben auf dem Bildschirm angezeigt.

Page 6: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 6

ANSI-Zeichen

Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen dem ASCII-Zeichensatz.

Standard in Python 2.x. Die weiteren 128 Zeichen enthalten sprachspezifische

Zeichen wie Ä, Ö etc. Die häufigste Erweiterung ist Latin 1 (ISO 8859-1).

Page 7: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 7

… im Internet

http://www.torsten-horn.de/techdocs/ascii.htm http://lubasch.ch/wp-

content/uploads/2015/01/ascii_tabelle.pdf http://www.tabelle.info/ascii_zeichen_tabelle.html http://www.asciitable.com/

Page 8: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

C++ - Einführung | 06.05.15 Seite 8

Escape-Sequenzen

Nicht druckbare Zeichen eines Zeichensatzes. Steuerzeichen wie zum Beispiel der Zeilenumbruch. Zeichen, die mit einem Backslash beginnen. Siehe https://docs.python.org/3/reference/lexical_analysis.html.

Page 9: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

C++ - Einführung | 06.05.15 Seite 9

Escape-Sequenzen

\

\

\

b

f

n

\

\

\

r

t

v

Back space. Gehe einen Schritt zurück.

Form feed. Seitenumbruch.New Line. Gehe zum Anfang einer neuen Zeile.Carriage return. Gehe zum Anfang der aktuellen Zeile.

Horizontal Tabulator.

Vertical Tabulator.

Page 10: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

C++ - Einführung | 06.05.15 Seite 10

Escape-Sequenzen

\

\

\

"

'

\

Anführungszeichen.

Apostroph.

Umgekehrter Schrägstrich. Backslash.

Page 11: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

C++ - Einführung | 06.05.15 Seite 11

Strings und der Backslash

Ein Backslash am Anfang oder in einem String, wird als das Zeichen „Backslash“ interpretiert.

Ein Backslash am Ende eines Strings, dem direkt ein Anführungszeichen oder Apostroph folgen, verursacht einen Fehler. Der String wird ist nicht korrekt abgeschlossen.

Page 12: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 12

Unicode

Alle bekannten Zeichen sollen zu einem Zeichensatz zusammengefasst werden.

Juni 2016 Veröffentlichung von Unicode 9.0. Standard ab Python 3.x: UTF-8 (ein Zeichen = 1 Byte).

Weitere Möglichkeiten: UTF-16 und UTF-32.

Page 13: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 13

… im Internet

https://docs.python.org/3/howto/unicode.html http://unicode.org/ http://unicode-table.com/de/ http://unicode.e-workers.de/about_unicode.php

Page 14: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 14

Unicode-String

zeichenUnicode = u"æøå"

Ein kleines u vor dem String kennzeichnet einen Unicode-String.

Die Kennzeichnung wird ab Python 3.x nicht mehr benötigt.

Page 15: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 15

Escape-Sequenz als Unicode-Zeichen

escapeUnicode = "\u00E6\u00F8\u00E5"

\u maskiert den Code für ein Unicode-Zeichen. Mit Hilfe der vierstelligen Ziffer wird ein Unicode-Zeichen

maskiert.

Page 16: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 16

Raw-String

rohstring = r"C:\Wurzel\Ordner\Unterordner\Datei"

Ein kleines r vor dem String kennzeichnet einen „rohen“ String.

Escape-Sequenzen werden nicht interpretiert. Es wird kein Backslash ersetzt.

Der String darf nicht mit dem Backslash enden. Andernfalls wird die Fehlermeldung EOL while scanning string literal angezeigt.

Page 17: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 17

… endet mit einem Backslash

rohstring = r"C:\Wurzel\Ordner\Unterordner\Datei" + "\\"rohstring = r"C:\Wurzel\Ordner\Unterordner\Datei" + chr(92)

Mit Hilfe des Pluszeichens kann ein „roher“ String mit einem String verknüpft werden.

Der Backslash wird mit der passenden Escape-Sequenz angegeben.

Andere Möglichkeit: Der Backslash wird mit Hilfe der Funktion chr() angegeben.

Page 18: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 18

Kodierung eines Zeichens

rohstring = r"C:\Wurzel\Ordner\Unterordner\Datei" + chr(92)

Die Funktion chr() gibt ein Zeichen entsprechend der angegebenen Codierung zurück.

In den runden Klammern wird der Funktion eine Ganzzahl übergeben.

Die übergebenen Ganzzahl definiert exakt ein Zeichen im Unicode-Zeichensatz.

Page 19: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 19

Codierung von Zeichen

zeichenAscii= "abc"

print(zeichenAscii.encode('ascii') )print(zeichenAscii.encode('utf-8') )print(zeichenAscii.encode('latin1') )

Page 20: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 20

Erläuterung

Der Variablen zeichenAscii wird der String abc zugewiesen. Mit Hilfe der Methode .encode wird der String in Abhängigkeit

einer Zeichentabelle kodiert. Die gewünschte Zeichenkodierung ascii wird der Methode in

runden Klammern als String übergeben. Der zu kodierende String wird mit der Methode durch den

Punktoperator verbunden.

zeichenAscii= "abc"

zeichenAscii.encode('ascii')

Page 21: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 21

String-Methoden

result = string.methode(par01, par02,...) Methoden sind in Klassen definiert. Jede Methode hat einen

eindeutigen Namen. Klassen stellen Baupläne für ein konkretes Objekt dar. In

diesem Bauplan ist das Verhalten (Methoden) und die Eigenschaften (Attribute) definiert.

Das Objekt zeichenAscii ist nach einem bestimmten Plan gebaut. Alle, in dem Plan definierten Methoden können auf das Objekt angewendet werden.

zeichenAscii= "abc"

zeichenAscii.encode('ascii')

Page 22: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 22

Parameter von Methoden

In den runden Klammern wird eine Parameterliste definiert. Die runden Klammern stehen direkt im Anschluss am

Methodennamen. Die Parameterliste kann x Parameter oder keine enthalten. Die Parameter in der Liste werden durch ein Komma getrennt. In diesem Beispiel wird der Methode als einziger Parameter

die gewünschte Zeichenkodierung als String übergeben.

zeichenAscii= "abc"

zeichenAscii.encode('ascii')

Page 23: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 23

Rückgabewert

Jede Methode gibt in Python None oder einen definierten Wert zurück.

Die Methode .encode() gibt ein Byte-Objekt in der gewünschten Zeichenkodierung zurück.

zeichenAscii= "abc"

zeichenAscii.encode('ascii')

Page 24: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 24

Konvertierung nach ASCII

zeichenUnicode = u"abc-æøå"

print(zeichenUnicode.encode('ascii','ignore') )print(zeichenUnicode.encode('ascii','replace') )print(zeichenUnicode.encode('ascii','backslashreplace') )

Page 25: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 25

Erläuterung

Der Variablen zeichenAscii wird der String abc zugewiesen. Mit Hilfe der Methode .encode wird der String in Abhängigkeit

einer Zeichentabelle kodiert. Die gewünschte Zeichenkodierung ascii wird der Methode in

runden Klammern als String übergeben. Mit Hilfe des zweiten Parameters wird eine Fehlerbehandlung festgelegt.

Der zu kodierende String wird mit der Methode durch den Punktoperator verbunden.

zeichenAscii= "abc"

print(zeichenUnicode.encode('ascii','replace') )

Page 26: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 26

Parameterliste der Methode .encode()

In diesem Beispiel werden der Methode .encode() zwei Parameter übergeben.

Beide Parameter sind String-Variablen. Die Parameter in der Liste werden durch ein Komma getrennt.

zeichenUnicode = u"abc-æøå"

zeichenUnicode.encode('ascii','ignore')

Page 27: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 27

Parameter der Methode .encode()

Erster Parameter: In welchen Zeichensatz wird der String kodiert?

Zweiter Parameter: Wie werden Zeichen behandelt, die nicht in den Ziel-Zeichensatz kodiert werden können?

zeichenUnicode = u"abc-æøå"

zeichenUnicode.encode('ascii','ignore')

Page 28: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 28

Möglichkeiten für den zweiten Parameter

zeichenUnicode.encode('ascii','ignore') zeichenUnicode.encode('ascii','replace') zeichenUnicode.encode('ascii','backslashreplace')

Das Argument ignore ignoriert Zeichen, die nicht in der angegebenen Zeichentabelle (erster Parameter) vorhanden sind.

Das Argument replace ersetzt die Zeichen mit passenden Zeichen aus der Zeichentabelle. Falls keine passenden Zeichen vorhanden sind, werden Fragezeichen gesetzt.

Das Argument backslashreplace ersetzt die nicht vorhandenen Zeichen durch die entsprechenden Escape-Sequenzen.

Page 29: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 29

Beispiele für den Rückgabewert

>>> zeichenUnicode = u"abc-æøå"

>>> zeichenUnicode.encode('ascii','ignore') B'abc-'

>>> zeichenUnicode.encode('utf-8','ignore')b'abc-\xc3\xa6\xc3\xb8\xc3\xa5'

>>> zeichenUnicode.encode('latin1','ignore')b'abc-\xe6\xf8\xe5'

Page 30: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 30

Rückgabewert

Die Methode kann einen Wert zurückgeben. Die Methode .encode() gibt ein Byte-Objekt in der

gewünschten Zeichenkodierung zurück.

zeichenUnicode = u"abc-æøå"

zeichenUnicode.encode('ascii','ignore')

Page 31: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 31

Byte-Literal

Kennzeichnung mit einem b bei einer Ausgabe in der Shell. Besteht aus einer Folge von Bytes. Ein Byte setzt sich aus 8

Einsen und / oder Nullen zusammen.

>>> zeichenUnicode = u"abc-æøå"

>>> zeichenUnicode.encode('ascii','ignore') b'abc-'

Page 32: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 32

Länge eines Strings

autor = "Monty Python"anzahlBuchstaben = len(autor)

Mit Hilfe der Funktion len() wird die Anzahl der Elemente in einem String ermittelt.

Der Methode wird der zu untersuchende String als Parameter in den runden Klammern übergeben.

Die Methode gibt die Anzahl der Zeichen eines Strings zurück.

Page 33: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

C++ - Einführung | 06.05.15 Seite 33

Indizes der Zeichen in einem String

Von links beginnend hat das erste Element den Index 0. Die Zeichenkette wird vom ersten bis zum letzten Zeichen durchlaufen. Das letzte Element hat den Index (Länge – 1).

Von rechts beginnend hat das erste Element den Index -1. Die Zeichenkette wird vom letzten bis zum ersten Zeichen durchlaufen.

M o n t y P y t h o

0 1 2 3 4 5 6 7 8 9 10

-12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2

n

11

-1

Page 34: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 34

Nutzung von Indizes

autor = "Monty Python"

zeichenFirst = autor[0]zeichenLast = autor[-1]

Als Indizes werden positive oder negative Ganzzahlen genutzt.

Der Index wird in eckigen Klammern angegeben. Bei einem Überschreiten der Grenzen wird der Fehler index

out of range gemeldet.

Page 35: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 35

Verknüpfung von Strings

autor = "Monty Python"

angabe = autor + ' ' + stueck + "(TV-Serie " + str(1969) + '–' + str(1974) + ')'

Mit Hilfe des Pluszeichens werden Strings miteinander verknüpft.

Eine Verknüpfung von Zahlen und Strings erzeugt den Fehler TypeError: Can't convert 'int' object to str implicitly. Eine automatische Konvertierung von Zahlen in Strings findet nicht statt.

Page 36: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 36

Umwandlung in ein String

autor = "Monty Python"

angabe = autor + ' ' + stueck + "(TV-Serie " + str(1969) + '–' + str(1974) + ')'

Mit Hilfe der Funktion str() kann ein beliebiger anderer Datentyp in einen String konvertiert werden.

In den runden Klammern wird der Funktion der umzuwandelnde Wert übergeben.

In diesem Beispiel werden die Jahreszahlen 1969 und 1974 in einen String umgewandelt.

Page 37: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 37

Teilstring am Ende anhängen

angabe = autor + ' ' angabe += stueckangabe += "(TV-Serie " + str(1969) + '–' + str(1974) + ')'

Der Operator += ist ein zusammengesetzter Operator. Im ersten Schritt wird die Variable rechts vom Operator zu

dem Operator links addiert. In diesem Beispiel wird der Wert der Variablen autor an das Ende der Variablen angabe angehängt.

Im nächsten Schritt wird der neu berechnete Wert der Variablen angabe zugewiesen.

Page 38: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 38

Verknüpfung einer Liste von Strings

autor = "Monty Python"stueck = 'Flying Circus'serie = "(TV-Serie " + str(1969) + '–' + str(1974) + ')'

angabe = " ".join([autor, stueck, serie])

Die Methode .join() verknüpft eine Liste von Strings. Zwischen den einzelnen „Wörter“ wird automatisiert ein

Trennzeichen eingefügt.

Page 39: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 39

Definition einer Liste von Elementen

autor = "Monty Python"stueck = 'Flying Circus'serie = "(TV-Serie " + str(1969) + '–' + str(1974) + ')'

angabe = " ".join([autor, stueck, serie])

Der Methode .join() wird als Parameter in den runden Klammern eine Liste von Strings übergeben.

Die Liste wird durch eckige Klammern begrenzt. Die Elemente in der Liste werden durch ein Komma getrennt. In Abhängigkeit der Reihenfolge der Liste werden die

Elemente durch die Methode .join() verbunden.

Page 40: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 40

Trennzeichen zwischen den Wörtern im String

autor = "Monty Python"stueck = 'Flying Circus'serie = "(TV-Serie " + str(1969) + '–' + str(1974) + ')'

angabe = " ".join([autor, stueck, serie])

Die Methode .join() ist in dem Objekt „String“ definiert . Das Objekt und die Methode werden durch einen Punkt

verbunden. Das Objekt (das Trennzeichen) steht links vom Punkt. In

diesem Beispiel werden die Listenelemente mit Hilfe eines Leerzeichens in der angegebenen Reihenfolge verbunden.

Page 41: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 41

Rückgabe des verknüpften Strings

autor = "Monty Python"stueck = 'Flying Circus'serie = "(TV-Serie " + str(1969) + '–' + str(1974) + ')'

angabe = " ".join([autor, stueck, serie])

Die Methode .join() gibt den String „Monty Python Flying Circus (TV-Serie 1969 – 1974)“ zurück.

Der verknüpfte String wird in der Variablen angabe gespeichert.

Page 42: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 42

… ist enthalten in

zitat01 =""" Mr Mousebender: Tell me, do you have any cheese at all?\n Henry Wenslydale: Yes.\n"""

if("Wenslydale" in zitat01): print("Sketch with Mousebender and Wenslydale")

Ist "Wenslydale" in der Variablen zitat01 enthalten? Die Überprüfung gibt True oder False zurück. Hinweis: Die Groß- und Kleinschreibung wird beachtet.

Page 43: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 43

… ist nicht enthalten in

zitat01 =""" Mr Mousebender: Tell me, do you have any cheese at all?\n Henry Wenslydale: Yes.\n"""

if("Wenslydale" not in zitat01): print("Unknown")

Ist "Wenslydale" in dem Wert Variablen zitat01 nicht enthalten? Die Überprüfung gibt True oder False zurück. Hinweis: Die Groß- und Kleinschreibung wird beachtet.

Page 44: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 44

Ausschneiden von Teilstrings

angabe = autor + ' ' + stueck

teilstring = angabe[0:5]teilstring = angabe[0:len("Monty") - 1]teilstring = angabe[:len("Monty: ") - 1]

Ausschneiden (slicing) von Teilstrings von … bis … aus einem anderen String.

string[start:stopp]. In den eckigen Klammern wird ein Start- und Stopp-Wert

angegeben. Start- und Stopp-Werte werden mit dem Doppelpunkt

verbunden.

Page 45: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 45

Angabe des Startwertes

angabe = autor + ' ' + stueck

teilstring = angabe[0:5]teilstring = angabe[0:len("Monty") - 1]teilstring = angabe[:len("Monty: ") - 1]

Das erste Zeichen, welches beim Ausschneiden genutzt wird. Positive oder negative Ganzzahl links vom Doppelpunkt. Berechnung des Startwertes durch Suche nach einem Wort

etc. Weglassung des Startwertes: Beginn beim ersten Zeichen.

Das erste Zeichen besitzt den Index 0.

Page 46: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 46

Angabe des Stoppwertes

angabe = autor + ' ' + stueck

teilstring = angabe[0:5]teilstring = angabe[0:len("Monty") - 1]teilstring = angabe[:len("Monty: ") - 1]

Das erste Zeichen, welches nicht für den Teilstring genutzt wird.

Positive oder negative Ganzzahl rechts vom Doppelpunkt. Berechnung des Startwertes zum Beispiel durch die Funktion

len(). Weglassung des Startwertes: Ende beim letzten Zeichen. Das

letzte Zeichen besitzt den Index len(string) - 1.

Page 47: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 47

Rückgabe des Teilstrings von … bis ...

angabe[0:5]

M o n t y P y t h o

0 1 2 3 4 5 6 7 8 9 10

-12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2

n

11

-1

angabe[-6:]angabe[:-7]

angabe[:]

Page 48: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 48

Suchen nach einem String ...

anfangsPos = angabe.index("Flying")endPos = anfangsPos + len("Flying")

teilstring = angabe[anfangsPos: endPos]

In Python hat das Objekt <class 'string'> die Methode .index(). Die Methode gibt die Anfangsposition eines Strings in einer

Zeichenkette zurück.

Page 49: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 49

Der zu durchsuchende String

anfangsPos = angabe.index("Flying")

Das Objekt und die Methode werden durch den Punkt verbunden.

Das Objekt (links vom Punkt) wird durch die Methode (rechts vom Punkt) verändert.

In diesem Beispiel wird in dem String-Objekt angabe den Beginn eines Teilstrings gesucht.

Page 50: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 50

Suchwort

Der Methode .index() wird der zu suchende String als Parameter übergeben. In diesem Beispiel wird der Methode .index() der Parameter Flying übergeben.

Die Parameterliste einer Methode wird durch die runden Klammern begrenzt und folgt direkt dem Methodennamen.

anfangsPos = angabe.index("Flying")

Page 51: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 51

Position des Suchwortes

Die Methode .index() gibt die Anfangsposition eines Strings in einem anderen zurück.

In diesem Beispiel wird der String Flying in der String-Variablen angabe gesucht. Falls der String nicht gefunden wird, wird der Fehler ValueError: substring not found zurückgegeben.

anfangsPos = angabe.index("Flying")

Page 52: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 52

Suchen nach dem String ...

anfangsPos = angabe.find("Flying")endPos = anfangsPos + len("Flying")

teilstring = angabe[anfangsPos: endPos]

In Python hat das Objekt <class 'string'> die Methode .find(). Das Objekt <class 'string'> kann eine Zeichenkette direkt im

Code oder eine Variable sein. Die Methode .find() gibt die Funktion .index() die

Anfangsposition eines String in einer Zeichenkette wieder.

Page 53: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 53

Das zu durchsuchende Objekt

anfangsPos = angabe.find("Flying")

Mit Hilfe des Punktoperators werden der zu durchsuchende String und die Methode verbunden.

Die Variable angabe verweist auf eine Zeichenkette. In dieser Zeichenkette wird ein String gesucht.

Page 54: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 54

Suchwort

Der Methode .find() wird als Parameter der zu suchende String übergeben.

In diesem Beispiel wird der String Flying in der Variablen angabe gesucht.

Die runden Klammern fassen Parameter zusammen, die einer Methode übergeben werden.

anfangsPos = angabe.find("Flying")

Page 55: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 55

Position des Suchwortes

Die Methode .find() gibt den Beginn eines Wortes in einer Zeichenkette zurück.

In diesem Beispiel wird der String Flying in der String-Variablen angabe gesucht. Falls der String nicht gefunden wird, gibt die Methode den Wert -1 zurück.

anfangsPos = angabe.find("Flying")

Page 56: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 56

Ersetzung von Zeichen in einem String

Die Methode .replace() ersetzt ein Zeichen durch ein anderes. Falls vorhanden, werden die Zeichen in dem String links vom

Punktoperator ersetzt. In diesem Beispiel wird der String "4.56" nach dem Zeichen

„Punkt“ durchsucht. Falls ein Punkt in dem String gefunden wird, wird dieses Zeichen durch ein Komma ersetzt.

"4.56".replace('.', ',')

Page 57: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 57

Parameter der Methode .replace()

Die zu übergebenden Parameter werden mit Hilfe der runden Klammern zusammengefasst.

Die einzelnen Parameter werden durch ein Komma getrennt. Der erste Parameter gibt den suchenden String an. Der erste Parameter wird durch den zweiten Parameter in

dem angegebenen String ersetzt.

"4.56".replace('.', ',')

Page 58: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 58

Formatierung von Strings

Die Methode .format() liefert einen formatierten String zurück. Siehe https://docs.python.org/3/library/string.html#string-

formatting.

wohnort = "{1} {0}".format("Hannover", 30159)

strTemperatur = "Fieber: Temperatur zwischen {0} °C und {1} °C" .format(37.5, 39.4)

Page 59: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 59

Parameterliste der Methode .format()

Die Methode .format() besitzt eine Parameterliste. Die Parameterliste wird durch die runden Klammern begrenzt.

Die einzelnen Parameter in der Liste werden durch ein Komma getrennt. In der Liste können beliebig viele Parameter vorkommen.

Die Parameter in der Liste werden von 0 bis n von links nach rechts nummeriert.

wohnort = "{1} {0}".format("Hannover", 30159)

Page 60: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 60

Formatstring

Der Formatstring und die Methode .format() werden durch den Punkt verbunden.

Der Formatstring wird durch die Anführungszeichen oder den Apostroph begrenzt.

Der Formatstring besteht aus statischen Text und Platzhaltern für variablen Text.

wohnort = "{1} {0}".format("Hannover", 30159)

Page 61: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 61

Platzhalter

Platzhalter beginnen und enden mit einer geschweiften Klammer.

Platzhalter werden von 0 bis n nummeriert. Platzhalter können an jeder beliebigen Position eines

Formatstrings vorkommen.

wohnort = "{1} {0}".format("Hannover", 30159)

Page 62: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 62

{0} {1} {2}

Ersetzung der Platzhalter

format.'{2}.{0}.{1}'

2011301

Für jeden Parameter ist ein Platzhalter im Formatstring vorhanden.

Jede Nummer in den geschweiften Klammern im Formatstring verweist auf ein Parameter in der Parameterliste der Methode.

Die Reihenfolge der Parameter in der Parameterliste muss nicht der Reihenfolge der Platzhalter im Formatstring entsprechen.

201130 1( , , )

Page 63: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 63

Formatierungsregeln

{ 0 :

{ Index :

>

Aus-richtung

0

Füll- zeichen

6

Feldweite

.

.

3

Anzahl / Länge

}

}

Page 64: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 64

Minimale Feldweite

format.'6:0{' 1.2( )}

1 . 2

Page 65: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 65

Minimale Feldweite

format.'6:0{' 1.234567( )}

3 4 51 . 2 6 7

Page 66: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 66

Linksbündige Ausrichtung eines Strings

format.'6:0{' "abc"( )}

a b c

<

Page 67: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 67

Rechtsbündige Ausrichtung eines Strings

format.'6:0{' "abc"( )}

a b c

>

Page 68: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 68

Zentrierung eines Strings

format.'6:0{' "abc"( )}

ca b

^

Page 69: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 69

Leerstellen mit einem Füllzeichen auffüllen

format.'6:0{' "abc"( )}

c ? ?? a b

>?

Page 70: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 70

Hinweise

Das Füllzeichen wird vor der Textausrichtung angegeben. Dem Füllzeichen muss ein Zeichen für die Textausrichtung

folgen. Als Füllzeichen kann jedes beliebige Zeichen genutzt werden.

Standardmäßig wird ein String mit Leerzeichen aufgefüllt.

Page 71: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 71

Maximale und minimale Textbreite eines Strings

format.'8:0{' "abc"( )}

ca b

.4

Page 72: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 72

Maximale und minimale Textbreite eines Strings

format.'8:0{' "123456789"( )}

3 41 2

.4

7 85 6

Page 73: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 73

Maximale und minimale Textbreite einer Zahl

format.'8:0{' 1.23456789( )}

3 41 2

.4

7. 5 6

Page 74: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 74

Maximale und minimale Breite von „Float“

format.'8:0{' 1.234567891( )}

3 41 2

.4

7. 5 6

f

98

Minimal 4 Stellen

Max. 8 Nachkommastellen

Page 75: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 75

Maximale und minimale Breite von „Integer“

format.'8:0{' 1234( )}

3 41 2

0

00 0

d

0Minimal 8 Stellen

Fülle nicht besetzte Stellen mit 0 auf

Page 76: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 76

Ausgabe in die Standardausgabe

Mit Hilfe der Funktion print() wird ein Objekt auf der Standardausgabe ausgegeben.

Die Entwicklungsumgebung IDLE nutzt die Shell als Standardausgabe.

print("Erhöhte Temperatur")

Page 77: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 77

Parameter der Funktion

Der Funktion print() wird der aus zugebende String als Parameter übergeben.

Der aus zugebende String kann als Literal angegeben werden. Andere Möglichkeit: Eine Stringvariable wird für die Ausgabe genutzt.

ausgabe = "Fieber in Höhe von {0:4.2f} °C".format(temperatur)print(ausgabe)

Page 78: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 78

Abschluss der Ausgabe

Standardmäßig wird jede Ausgabe mit einem Zeilenumbruch (newline, \n) abgeschlossen.

Mit Hilfe des benannten Parameters end kann ein beliebiges Zeichen als Abschluss genutzt werden. Dem benannten Parameter wird mit Hilfe des Gleichheitszeichen das gewünschte Ende-Zeichen zugewiesen. In diesem Beispiel wird die Ausgabe mit einem Leerzeichen abgeschlossen.

print ("Sehr hohes Fieber in Höhe von ", end=" ") print ("{0:4.2f} °C".format(temperatur))

Page 79: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 79

Einlesen von der Standardeingabe

Mit Hilfe der Funktion input() können Eingaben von der Standardeingabe gelesen werden.

Die Entwicklungsumgebung IDLE nutzt die Shell als Standardeingabe.

strTemperatur = input("Bitte geben Sie die Temperatur ein: ")

Page 80: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 80

Eingabe des Nutzers

Die Funktion input() gibt ab Python 3.x immer einen String zurück.

Die Eingabe wird mit der Eingabetaste (<Return>) beendet.

strTemperatur = input("Bitte geben Sie die Temperatur ein: ")

Page 81: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 81

Konvertierung des Strings in „float“

Die Funktion float() wandelt den String in eine Gleitkommazahl um.

Falls eine Umwandlung nicht möglich ist, wird eine Fehlermeldung ValueError: could not convert string to angezeigt.

Hinweis: Ein Komma als Dezimaltrennzeichen wird nicht automatisch in ein Punkt konvertiert.

strTemperatur = input("Bitte geben Sie die Temperatur ein: ")

temperatur = float(strTemperatur)

Page 82: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 82

Konvertierung des Strings in „int“

Die Funktion int() wandelt den String in eine Ganzzahl (Integer) um.

Falls eine Konvertierung nicht möglich ist, wird ein Fehler ValueError: could not convert string to gemeldet.

strTemperatur = input("Bitte geben Sie die Temperatur ein: ")

temperatur = int(strTemperatur)

Page 83: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 83

Arbeiten mit Dateien

datei = open('arbeitsdatei', 'w')strTemperatur = input("Durchschnittstemp. Januar : ")datei.write(strTemperatur)strTemperatur = input("Durchschnittstemp. März ein: ")datei.write('\nMärz ')datei.write(strTemperatur)datei.close()

datei = open('arbeitsdatei', 'r')strInhalt = datei.read()datei.close()print(strInhalt)

Page 84: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 84

Öffnen einer Datei

Die Funktion open() öffnet eine Datei. Dateien, die wir als Menschen lesen können, werden im

Textmodus geöffnet. Die Zeichencodierung der Datei muss bekannt sein.

Dateien wie Bilder etc., werden im Binärmodus geöffnet. Die Funktion gibt ein Objekt <class 'File'> zurück. Die Variable

datei verweist auf die geöffnete Datei.

datei = open('arbeitsdatei', 'w')

Page 85: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 85

1. Parameter der Funktion

Der erste Parameter gibt darüber Auskunft, welche Datei geöffnet werden soll.

In diesem Beispiel wird eine Datei im Textmodus geöffnet. Die Datei hat keine Endung und das Dateiformat kann nicht spezifiziert werden.

datei = open('arbeitsdatei', 'w')

Page 86: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 86

Hinweise zu Pfadangaben

Falls kein Pfad zu der Datei angegeben ist, wird die Datei am Speicherort des Python-Codes gesucht.

Pfade können absolut von der Wurzel bis zum Speicherort der zu öffnenden Datei angegeben werden.

Pfade können relativ zum Speicherort der Code-Datei angegeben werden.

Page 87: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 87

Beispiele für relative Pfadangaben

Ordner „Code“

code.py

datei.csv

Open('../datei', 'w')

Ordner „dateien“

datei.csv

open('dateien/datei.csv', 'w')

Ordner „Wurzel“ datei

Page 88: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 88

2. Parameter

Der zweite Parameter legt fest, wie die Daten in der Datei verarbeitet werden sollen.

Der Dateimodus wird mit Hilfe eines Strings festgelegt. In diesem Beispiel wird die Datei zum Schreiben geöffnet. Weitere Informationen: https://docs.python.org/3.7/tutorial/

inputoutput.html#reading-and-writing-files

datei = open('arbeitsdatei', 'w')

Page 89: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 89

Datei-Modus einer Textdatei

In diesem Beispiel wird eine Datei ohne Endung zum Schreiben ('w') geöffnet. Falls die Datei nicht vorhanden ist, wird eine neue Datei angelegt.

Der Modus 'r' liest eine Datei. Am Ende einer Datei kann Inhalt angehängt werden ('a'). Dateien können für Änderungen geöffnet werden ('+'). Die

Datei ist zum Lesen und Schreiben geöffnet.

datei = open('arbeitsdatei', 'w')

Page 90: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 90

Schließen einer Datei

Die Methode .close() schließt ein Objekt „File“. Die Datei, auf die die Variable datei verweist, wird

geschlossen.

datei.close()

Page 91: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 91

Öffnen und schließen einer Datei

Die Funktion open() öffnet eine Datei. In diesem Beispiel wird die Datei zum Lesen geöffnet. Die Funktion gibt ein Objekt <class 'File'> zurück. Für den Verweis wird ein Alias erzeugt.

Der Befehl as definiert einen Alias-Namen für den Verweis auf ein Objekt. In diesem Beispiel ist datei ein Alias für ein Objekt <class 'File'>.

Sobald der dazugehörige Codeblock abgearbeitet ist, wird das File-Objekt automatisiert geschlossen.

with open('arbeitsdatei', 'r') as datei: strZeichen = datei.read()

Page 92: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 92

Schreiben in eine Datei

Die Methode .write() schreibt einen String in das Objekt datei. Nach dem Schreiben eines Strings wird nicht automatisch

eine neue Zeile eingegeben. Mit Hilfe von .write('\n') kann eine neue Zeile zwischen den

Strings eingefügt werden.

datei.write(strTemperatur)

Page 93: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 93

Lesen in eine Datei

Die Methode .read() liest den Inhalt des File-Objekts datei vollständig ein.

Der Inhalt der Datei wird in der Variablen strInhalt gespeichert.

strInhalt = datei.read()

Page 94: Python - Programmierung · Programmiersprache Python Seite 6 ANSI-Zeichen Jedes Zeichen wird mit 1 Byte (8 Bits) kodiert. Erweiterter ASCII-Zeichensatz. Die ersten 128 Zeichen entsprechen

Programmiersprache Python Seite 94

Lesen von x Zeichen

Der Methode .read() kann als Argument die Anzahl der zu lesenden Zeichen übergeben werden.

In diesem Beispiel werden 3 Zeichen gelesen.

strInhalt = datei.read(3)