display

11. STRINGS UND SCROLLTEXT

 

 

DU LERNST HIER...

 

wie du mit Strings umgehst und wie du sie als Lauftext auf dem Display darstellen kannst. Du lernst auch, wie du Textinformationen im Terminal-Fenster (REPL/Console) ausschreiben kannst.

 

 

STRINGS

 

Wörter und Sätze sind aneinander gefügte Zeichen und werden als String bezeichnet. Zur Definition einer Stringvariablen verwendet man ein einfaches oder doppeltes Anführungszeichenpaar (Gänsefüsschen), also beispielsweise vorname = 'Maya' oder vorname = "Maya". Wir verwenden meist das doppelte Anführungszeichen.

 

 

MUSTERBEISPIELE

 

Im ersten Beispiel willst du den Namen "Maya" auf dem Display Buchstaben um Buchstaben ausschreiben. Du verwendest dazu insertBigChar(ch, textColor, bgColor), wobei textColor und bgColor auch weggelassen werden  können. Beachte, dass du keine Umlaute und Accents verwenden darfst.

Um auf einzelne Buchstaben des Strings zuzugreifen, verwendest du einen Stellenindex, der bei 0 beginnt. vorname[2] ist also der String, der nur den Buchstaben "y" enthält.

Programm:

from oxocard import *

vorname = "Maya"
for i in range(len(vorname)):
    insertBigChar(vorname[i], YELLOW, BLUE)
    sleep(0.5)
► In Zwischenablage kopieren
 

Eleganter durchläufst du den String mit einer verallgemeinerten for-Schleife:

Programm:

from oxocard import *


vorname = "Maya"
for ch in vorname:
    insertBigChar(ch)
    sleep(0.5)
► In Zwischenablage kopieren
 

Du kannst Strings mit dem +-Zeichen aneinander fügen. Definierst du beispielsweise den Familienname mit name = "Berger", so erhältst du mit anschrift = vorname + name den String "MayaBerger". Willst du zwischen Vorname und Namen noch eine Leerzeichen, so schreibst du

anschrift = vorname + " " + name

Das Aneinanderfügen von Strings nennt man auch Stringkonkatenation.

Programm:

from oxocard import *

vorname = "Maya"
name = "Berger"
anschrift = vorname + " " + name
for ch in anschrift:
    insertBigChar(ch)
    sleep(0.5)
► In Zwischenablage kopieren


Lauftexte und Ausschreiben mit einem einfachen Font

Statt einzelner Buchstaben kannst du auch den String als Lauftext (Scrolltext) ausschreiben, was besser lesbar ist.

Programm:

from oxocard import *


vorname = "Maya"
name = "Berger"
anschrift = vorname + " " + name
bigTextScroll(anschrift)
► In Zwischenablage kopieren

Es gibt auch Zeichen aus einem kleineren Font, das sich aber nur zum Ausschreiben von einfachen Texten und Zahlen eignet, da es nicht alle Zeichen, insbesondere keine Kleinbuchstaben enthält.

Programm:

vorname = "MAYA"
name = "BERGER"
anschrift = vorname + " " + name
smallTextScroll(anschrift)
► In Zwischenablage kopieren

Für zweiziffrige Zahlen eignet sich das Ausschreiben mit display().

Programm:

from oxocard import *

for n in range(100):
    display(n)
    sleep(0.1)
► In Zwischenablage kopieren
 

Rufst du display(n) mit einer negativen Zahl auf, so erscheint automatisch ein Vorzeichen unter der ersten Ziffer.

Programm:

from oxocard import *

for n in range(-1, -100, -1):
    display(n)
    sleep(0.1)
► In Zwischenablage kopieren
 

Du verwendest in diesem Beispiel auch eine allgemeinere Form des range() Befehls, bei dem du den Anfangswert, den Endwert und das Inkrement angibst (der Endwert ist nicht mehr enthalten).


Ausschreiben in das Terminal-Fenster (REPL/Console)

Es ist oft zweckmässig, bestimmte Informationen zur Laufzeit auf dem Entwicklungssystem anzuzeigen Du verwendest dazu den print()-Befehl, der auch mehrere durch Kommas getrennte Parameter erlaubt. Nach jeder ausgeschriebenen Zeile wird automatisch ein Zeilenumbruch eingefügt.

Programm:

from oxocard import *
from random import randint

print("Programm startet. Ich wuerfle...")
n = randint(1, 6)
print("Wuerfelzahl:", n)
print("Programm beendet")
► In Zwischenablage kopieren

Beachte, dass du auch hier keine Umlaute und Accents verwenden kannst.

 

 

MERKE DIR...

 

Strings sind eine spezielle Datenstruktur zu Speicherung von Texten. Du definierst sie mit einfachen oder doppelten Anführungszeichen. Beachte, dass es einen grossen Unterschied zwischen a = "7" und m = 7 gibt. Das eine ist ein String und das andere eine Ganzzahl. Du kannst also sehr wohl n = m + 1 schreiben, aber b = a + 1 führt zu einer Fehlermeldung, da Strings und Zahlen nicht addiert werden können. Für die Umwandlung einer Zahl in einen String verwendest du s = str("123"), für die Umwandlung eines Strings in eine Zahl z = int("123")

 

 

ZUM SELBST LÖSEN

 

 

1.

Schreibe einige lustige Texte, die endlos als Scrolltext ausgeschrieben werden.

 

2.

Programmiere eine Uhr, die mit display() die Sekunden ausschreibt. Nach einer Minute soll wieder 0 angezeigt werden. Überprüfe, wie genau deine Uhr läuft und optimiere die Genauigkeit.



 
3.

Schreibe ein Programm, das die Quadratzahlen von 1 bis 9 auf dem Display und gleichzeitig in der Console ausschreibt.


4.

Mit x in range(100, -1, -1) durchläufst du alle Zahlen x von 100 bis und inklusive 0. Schreibe den Kehrwert von x in der Console aus. Was beobachtest du bei x = 0?