<C>for<C>-Schleifen vereinfachen

Umsteiger von manchen Programmiersprachen sind es gewohnt, auf Arrays über Indizes zuzugreifen. Nach diesem Muster könnte man die Namen einiger Programmiersprachen so ausgeben, wie in Listing 30 zu sehen.

Listing 30

sprachen = [u"Python", u"Ruby", u"Perl"]
for i in range(len(sprachen)):
    print sprachen[i]

Da Pythons for-Schleife jedoch einfach Wert für Wert über eine Sequenz iteriert, kann man den vorherigen Code deutlich einfacher schreiben, wie Listing 31 zeigt. Benötigen Sie den Index doch einmal, nehmen Sie am besten die eingebaute Funktion enumerate in Anspruch (Listing 32). Der bei jedem Schleifendurchlauf erzeugte Index startet bei Null.

Listing 31

sprachen = [u"Python", u"Ruby", u"Perl"]
for sprache in sprachen:
    print sprache

Listing 32

sprachen = [u"Python", u"Ruby", u"Perl"]
for index, sprache in enumerate(sprachen):
    print "%d: %s" % (index + 1, sprache)

Einfacher Umgang mit Zeichenketten

Zeichenketten, sowohl Byte-Strings als auch Unicode-Strings, gelten in Python als unveränderbar. Sie können hier also nicht wie bei Listen einzelne Abschnitte verändern, sondern müssen bei Bedarf ein neues Zeichenketten-Objekt erzeugen.

Zwar besitzen Strings die Methoden index und find. Wollen Sie aber nur feststellen, ob eine Zeichenkette in einer anderen enthalten ist, erledigen Sie das einfach wie in der ersten if-Anweisung in Listing 33. Daneben gibt es noch Zeichenketten-Methoden, um festzustellen, ob ein String mit einer bestimmten Zeichenkette beginnt beziehungsweise endet. Das demonstrieren die beiden weiteren if-Anweisungen des Listings.

Listing 33

string = "Python"
if "th" in string:
    print 'String enthält "th".'
if string.startswith("Py"):
    print 'String beginnt mit "Py".'
if string.endswith("on"):
    print 'String endet mit "on".'

Wichtig für robuste Python-Programme ist auch die Unterscheidung zwischen Byte-Strings und Unicode-Strings. Dazu gilt es aber weiter auszuholen, so dass dieses Thema einem späteren Artikel vorbehalten bleibt. Einen Einstieg ins Thema finden Sie in der Python-Unicode-FAQ [9].

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

Kommentare

Infos zur Publikation

LU 03/2018 NEUE DISTRIBUTIONEN

Digitale Ausgabe: Preis € 5,95
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Stellenmarkt

Aktuelle Fragen

Internet abschalten
Karl-Heinz Hauser, 20.02.2018 20:10, 0 Antworten
In der Symbolleiste kann man das Kabelnetzwerk ein und ausschalten. Wie sicher ist die Abschaltu...
JQuery-Script läuft nicht mit Linux-Browsern
Stefan Jahn, 16.02.2018 12:49, 2 Antworten
Hallo zusammen, ...folgender goldener Code (ein jQuery-Script als Ergebnis verschiedener Exper...
XSane-Fotokopie druckt nicht mehr
Wimpy *, 30.01.2018 13:29, 2 Antworten
openSuse 42.3 KDE 5.8.7 Seit einem Software-Update druckt XSane keine Fotokopie mehr aus. Fehler...
TOR-Browser stürzt wegen Wikipedia ab
Wimpy *, 27.01.2018 14:57, 0 Antworten
Tor-Browser 7.5 based on Mozilla Firefox 52.8.0 64-Bit. Bei Aufruf von http: oder https://de.wi...
Wifikarte verhindert Bootvorgang
Maik Kühn, 21.01.2018 22:23, 1 Antworten
iwlwifi-7265D -26 failed to load iwlwifi-7265D -25 failed to load iwlwifi-7265D -24 failed to l...