15. Lektion: Stringbearbeitung: Unterschied zwischen den Versionen

Aus Attraktor Wiki

Wechseln zu: Navigation, Suche
(Erweiterte Formatanweisungen)
(Liste der erweiterten Formatierungsanweisungen:)
Zeile 147: Zeile 147:
 
:% Prozent Format
 
:% Prozent Format
 
</pre>
 
</pre>
 +
===== Übung:=====
 +
* Sucht Euch ein paar Formatierungsanweisung heraus und probiert diese aus.
 +
<br>
 
<!--
 
<!--
 
** https://en.wikipedia.org/wiki/ASCII
 
** https://en.wikipedia.org/wiki/ASCII

Version vom 1. Oktober 2023, 15:41 Uhr

String Methoden

Die Klasse String enthält eine ganze Reihe von Methoden die einen komfortablen Umgang mit Strings ermöglichen. Der Umfang an Methoden ist bei Micropython reduziert.

>>> dir(str)
['__class__', '__name__', 'count', 'endswith', 'find', 'format', 'index', 
'isalpha', 'isdigit', 'islower', 'isspace', 'isupper', 'join', 'lower', 'lstrip', 
'replace', 'rfind', 'rindex', 'rsplit', 'rstrip', 'split', 'startswith', 'strip', 
'upper', '__bases__', '__dict__', 'center', 'encode', 'partition', 
'rpartition', 'splitlines']
>>> 

Groß- und Kleinschreibung

Zum Umwandelt von Texten in Groß- oder Kleinschreibung gibt es die Methoden upper() und lower():

>>> hallo = 'Hallo'
>>> hallo_klein = hallo.lower()
>>> hallo_klein
    'hallo'
>>> hallo_gross = hallo.upper()
>>> hallo_gross
    'HALLO'
>>> 

Es läßt sich auch prüfen, ob ein Text groß oder klein geschrieben ist. Wenn sowohl Groß- als auch Kleinbuchstaben enthalten sind werden beide Abfragen False.

>>> text = 'Hallo'
>>> text.isupper()
    False
>>> text.islower()
    False
>>> text.lower().islower()
    True
>>> text.upper().islower()
    False
>>> 

Von Whitespaces befreien

Mit strip kann man Whitespaces aus Strings entfernen.

>>> text_form = '    Hallo    '
>>> text_form
'    Hallo    '
>>> text_form.strip()
'Hallo'
>>> text_form.lstrip()
'Hallo    '
>>> text_form.rstrip()
'    Hallo'
>>>  

Texte ausrichten

Zum Ausrichten von Texten steht in Micropython nur die center-Methode zur Verfügung. Als Parameter wird die Größe des Feldes angegeben in dem der Text zentriert werden soll.

>>> text = 'Hallo'
>>> text.center(20)
'       Hallo        '

Sätze in Worte zerteilen

Mit split lässt sich ein Satz in seine einzelnen Wörter zerteilen. Dabei entsteht eine Liste.

>>> text = 'Hallo, Micropython ist ganz toll!'
>>> wort_liste = text.split()
>>> wort_liste
    ['Hallo,', 'Micropython', 'ist', 'ganz', 'toll!']
>>> 

Sätze aus Worten zusammensetzen

Mit join kann aus einer Liste von Worten ein Satz zusammengesetzt werden. Als Ausgangsstring wird das Trennzeichen zwischen den Worten verwendet.

>>> ' '.join(wort_liste)
    'Hallo, Micropython ist ganz toll!'
>>> 

Praktisch ist es auch bei Zeitangaben:

>>> stunde = '7'
>>> minute = '25'
>>> sekunde = '38'
>>> ':'.join([stunde, minute, sekunde])
    '7:25:38'
>>> 

Texte mit Werten auffüllen

Formatierung

Es gibt in Python 3 Arten Texte zu formatieren. In diesem Fall bedeutet das, Einfügen von Werten in einen bestehenden Text. Davon stehen in Micropython nur die 2 älteren Methoden zur Verfügung. Die neueste, f-Formatierung genannt, gibt es in Micropython noch nicht. Bei Internetsuchen zur Formatierung in Python stößt man inzwischen meist auf die f-Formatierung. Das ist für Micropython wenig hilfreich. Deshalb ist es sinnvoller nach %-Formatierung oder .format() zu suchen.

%-Formatierung

Dieses ist die älteste Formatierung von Python. Deshalb werde ich darauf nicht weiter eingehen,

.format()-Formatierung

Bei dieser Art der Formatierung wird als Platzhalter im Text {} eingesetzt. .format() ist eine Methode der Klasse string. Die einzusetzten Werte werden in der richtigen Reihenfolge als Parameter übergeben.

>>> text = 'Hallo {}, schön das Du da bist'.format('Peter')
>>> text
'Hallo Peter, sch\xf6n das Du da bist'
>>> print(text)
Hallo Peter, schön das Du da bist
>>> 
Übung
  • Erstelle einen String in den die Worte "Attraktor", "Micropython" und "lernen" mit der .format() Methode eingefügt werden.


Erweiterte Formatanweisungen

https://www.w3schools.com/python/ref_string_format.asp
Es gibt weitere Möglichkeiten die eingefügten Werte zu formatieren.
Dazu werden Formatierungsanweisungen in die {} eingetragen.
Diese Anweisungen werden mit einem : eingeleitet
Z.B:

>>> 'Hallo, {:5s} Hallo.'.format('a')
    'Hallo, a     Hallo.'
>>> 'Hallo, {:>5s} Hallo.'.format('a')
    'Hallo,     a Hallo.'
>>> 'Der Wert ist {:5.2f}'.format(3.1456)
    'Der Wert ist  3.15'
Liste der erweiterten Formatierungsanweisungen:
:< 	Links ausgerichtet im verfügbaren Bereich.
:> 	Rechts ausgerichtet im verfügbaren Bereich.
:^ 	Zentriert im verfügbaren Bereich.
:= 	Plaziere das Vorzeichen ganz links aussen.
:+ 	Verwende ein Pluszeichen, um anzugeben, ob das Ergebnis positiv oder negativ ist.
:- 	Verwenden ein Minuszeichen, wenn das Ergebnis negativ ist.
:  	Verwende vor positiven Zahlen ein zusätzliches Leerzeichen und ein Minuszeichen vor negativen Zahlen.
:, 	Verwende ein Komma also tausender Seperator.
:_ 	Verwende ein Unterstrich also tausender Seperator.
:b 	Binär Format
:c 	Wandle das Zeichen in den entsprechende Unicode Wert.
:d 	Dezimal Format
:e 	Wissenschaftliches Format mit "e"
:E 	Wissenschaftliches Format mit "E"
:f 	Festkomma Zahlenformat in Kleinbuchstaben.
:F 	Festkomma Zahlenformat in Großbuchstaben (show inf and nan as INF and NAN).
:g 	Allgemeines Format
:G 	Allgemeines Format (verwende ein E für Wissenschaftliches Format)
:o 	Oktal Format
:x 	Hex Format, Kleinbuchstaben
:X 	Hex Format, Großbuchstaben
:n 	Zahlen Format
:% 	Prozent Format
Übung:
  • Sucht Euch ein paar Formatierungsanweisung heraus und probiert diese aus.


Navigation

Zurück zu Micropython Kurs 2023 - Teil 1
Zurück zur "Micropython Kurs 2023" Startseite
Zurück zur Programmieren Startseite
Zurück zur Wiki Startseite