Skip to content

Technik Blog

Programmieren | Arduino | ESP32 | MicroPython | Python | Raspberry Pi | Raspberry Pi Pico

Menu
  • Smarthome
  • Arduino
  • ESP32 & Co.
  • Raspberry Pi & Pico
  • Solo Mining
  • Über mich
  • Deutsch
  • English
Menu

Python #2: Variablen, Zahlen und Strings

Posted on 26. November 201823. August 2023 by Stefan Draeger

Im ersten Kapitel Python #1 : Installieren von Anaconda & Python haben wir die IDE Anaconda installiert und in der Anwendung Jupyter haben wir einen ersten Quellcode geschrieben und ausgeführt.

In diesem Kapitel möchte ich nun auf Zahlen und Strings eingehen.

Variablen

In unserem Beispiel „Hello World!“ im ersten Kapitel haben wir bereits eine Variable angelegt („greeting“). Nun wollen wir einmal in das Thema tiefer eintauchen.

Was sind Variablen?

Mit Variablen können wir Daten und Zustände in einer Anwendung benennen (für den Menschen lesbar) und speichern. Daher sollten diese einen für sich eindeutigen und sprechenden Namen tragen, d.h. wenn es die Begrüßung ist, kann man die Variable „greeting“ nennen. Bei Listen und Aufzählungen wird der Plural verwendet, d.h. wenn es eine List mit Begrüßungen gibt, dann sollte die Variable „greetings“ heißen.

Es ist nicht von Vorteil Variablen zbsp. mit n1, n2, n3 zu benennen, vieleicht weiß man heute noch was diese beinhalten aber in zwei Monaten oder aber ein anderer Entwickler wird sich da deutlich schwerer tun zu erahnen was damit gemeint sein kann.

Reservierte Wörter

Python hat einige reservierte Wörter, welche nicht als Variablennamen verwendet werden dürfen.

and, as, assert, break, class, continue, 
def, del, elif, else, except, False, finally, 
for, from, global, if, import, in, is, lambda, 
None, nonlocal, not, or, pass, raise, return, 
True, try, while, with, yield,

Wenn man es versehentlich doch einmal macht, dann erhält man eine entsprechende Ausgabe vom Interpreter:

global = "Lutz"
print(global)

 File "<ipython-input-6-6487bbc1d235>", line 1
    global = "Lutz"
           ^
SyntaxError: invalid syntax

Die IDE unterstützt einem mit dem Hervorheben von reservierten Wörtern, somit ist Frühzeit zu erkennen, wenn man doch einmal so ein Wort verwendet.

Zahlen

Python unterscheidet nicht, ob eine Zahl ganzzahlig oder eine Gleitkommazahl ist.

zwei Zahlen in Python addieren
zwei Zahlen in Python addieren

Gleitkommazahlen werden immer mit einem Punkt getrennt, nicht wie der Name es vermuten lässt mit einem Komma.

Addieren

zahl1 = 1
zahl2 = 1.45
print(zahl1 + zahl2)

Subtrahieren

zahl1 = 4
zahl2 = 1.45
print(zahl1 - zahl2)

Multiplizieren

zahl1 = 4
zahl2 = 3
print(zahl1 * zahl2)

Dividieren

zahl1 = 4
zahl2 = 3
print(zahl1 / zahl2)

Beim Dividieren zweier oder mehrere Zahlen muss man darauf achten das man NICHT durch 0 teilen kann, diese einfache Rechenformel gilt auch in der Programmierung.
Wenn man dieses jedoch trotzdem macht, dann liefert der Interpreter eine entsprechende Fehlermeldung beim Ausführen des Programmes und zeigt auf die Zeile wo der Fehler auftritt.

zahl1 = 4
zahl2 = 0
print(zahl1 / zahl2)

---------------------------------------------------------------------------
ZeroDivisionError                         Traceback (most recent call last)
<ipython-input-4-1637ac763b93> in <module>()
      1 zahl1 = 4
      2 zahl2 = 0
----> 3 print(zahl1 / zahl2)

ZeroDivisionError: division by zero

Wurzelberechnen

Für die Wurzelberechnung gibt es eine zusätzliche Bibliothek welche man mit

import math

in den Quellcode einbinden muss damit man diese nutzen kann.

import math

zahl = 144;
print(math.sqrt(zahl))

Zahlen runden

Wenn man eine Gleitkommazahl hat und die Runden möchte, nutzt man die Funktion „round(<<ZAHL>>)“.

zahl1 = 1.4;
print(round(zahl1))

zahl2 = 1.5;
print(round(zahl2))

Die Funktion rundet eine Gleitkommazahl kaufmännisch nach der ersten Stelle auf bzw. ab. So wird aus der Zahl 1.4 eine 1 und aus 1.5 wird ein 2. Möchte man die Zahl nicht ganzzahlig runden, sondern nach einer bestimmten Kommastelle, so gibt man der Funktion einen zweiten Parameter mit welche die Position nach dem Komma repräsentiert.

zahl1 = 1.456;
print(round(zahl1,2))

Strings

Um Zeichenketten zu speichern oder auszugeben nutzt man Strings. Auf diesen Objekten kann man dann verschiedene Funktionen ausführen, welche ich in den folgenden Kapiteln zeigen möchte.

name1 = "Stefan"
name2 = "Lutz"
print(name1)

Ein String wird immer eingeleitet von zwei Anführungszeichen und wird beendet von zwei Anführungszeichen.

String-Konkatination

Das Verbinden zweier Strings wird als String-Konkatination bezeichnet. Für diese Operation wird der „+“ Operator verwendet.

greeting = "Guten Tag"
name = " Stefan"
print(greeting + name)

Jedoch kann man mit dieser Funktion nicht einen String und eine Zahl ohne weiteres ausgeben.

text = "Ich bin "
alter = 38
text2 = "Jahre alt."
print(text + alter + text2)

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-14-3d6560db6061> in <module>()
      2 alter = 38
      3 text2 = "Jahre alt."
----> 4 print(text + alter + text2)

TypeError: can only concatenate str (not "int") to str


Der Interpreter erkennt hier eine das nicht alle Werte vom Typ String sind und zeigt auf die Zeile wo der Fehler auftritt.

Wie lösen wir nun das Problem?

Es gibt mehrere Möglichkeiten das Problem zu lösen.

Lösung 1 – alle Werte als String

Am einfachsten ist es, alle Werte als String abzubilden. Das funktioniert genauso so lange gut, wie wir mit diesen Werten nicht rechnen wollen. Haben wir also eine Liste an Benutzer und zu diesen das Alter gespeichert könnten wir nun das Durchschnittsalter einfach berechnen, jedoch mit einem String kann man nicht mehr so einfach rechnen.

text = "Ich bin "
alter = "38"
text2 = " Jahre alt."
print(text + alter + text2)
Lösung 2 – Zahl nach String umwandeln

Möchte man den Datentyp beibehalten, so wandelt man in der String-Konkatination den Zahlenwert in ein String um. Die Umwandlung erfolgt mit der Funktion „str(<<ZAHL>>)“. Die Funktion „str“ erhält als Parameter eine Zahl und liefert als Rückgabe einen String. Diesen neuen String können wir nun direkt (wie im Beispiel) ausgeben oder aber wiederum in eine Variable speichern.

text = "Ich bin "
alter = 38
text2 = " Jahre alt."
print(text + str(alter) + text2)
Lösung 3 – print Funktion

Der Funktion „print“ kann man beliebig viele Parameter übergeben und diese können wiederum wieder von beliebigen Datenformaten sein.

text = "Ich bin"
alter = 38
text2 = "Jahre alt."
print(text, alter, text2)

Als letzten Parameter kann man einen Separator übergeben, gibt man keinen an, so werden die Werte mit einem Leerzeichen getrennt.

text = "Ich bin"
alter = 38
text2 = "Jahre alt."
print(text, alter, text2, sep=",")

Die Ausgabe von diesem Beispiel wäre dann:

Ausgabe mehrerer Werte mit der Funktion "print"
Ausgabe mehrerer Werte mit der Funktion „print“
Lösung 4 – Ausgabe Formatieren

Eine weitere Lösung ist den gesamten Text in einer Variablen zu halten und für das Alter (in diesem Beispiel) einen Platzhalter zu setzen.
Dieser Platzhalter beginnt mit einem Prozentzeichen und ist gefolgt von der Zeichenlänge und einem Typparameter. Das Alter wird hier in einer Ganzzahl gespeichert somit ist der Typparamter ein kleines „d“.

text = "Ich bin %d Jahre alt."
alter = 38
print(text % alter)

Auf die Formatierung von Texten werde ich später erneut eingehen darum möchte ich mit diesem letzten Beispiel schließen.

Funktionen auf Strings

Auf Strings kann man weitere Funktionen ausführen, um diese zu manipulieren.

upper & lower

Mit der Funktion „upper“ werden alle Zeichen in Großbuchstaben umgewandelt.

text = "Ich bin %i Jahre alt."
alter = 38
msg = text % alter
print(msg.upper())

Ausgabe:

ICH BIN 38 JAHRE ALT.

Und die Funktion „lower“ wandelt alle Zeichen in Kleinbuchstaben um.

text = "Ich bin %i Jahre alt."
alter = 38
msg = text % alter
print(msg.lower())

Ausgabe:

ich bin 38 jahre alt.

Es gibt noch diverse weitere Funktionen, eine ausführliche Liste und eine sehr gute Beschreibung findest du unter https://www.w3schools.com.

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Fragen oder Feedback?

Du hast eine Idee, brauchst Hilfe oder möchtest Feedback loswerden?
Support-Ticket erstellen

Newsletter abonnieren

Bleib auf dem Laufenden: Erhalte regelmäßig Updates zu neuen Projekten, Tutorials und Tipps rund um Arduino, ESP32 und mehr – direkt in dein Postfach.

Jetzt Newsletter abonnieren

Unterstütze meinen Blog

Wenn dir meine Inhalte gefallen, freue ich mich über deine Unterstützung auf Tipeee.
So hilfst du mit, den Blog am Leben zu halten und neue Beiträge zu ermöglichen.

draeger-it.blog auf Tipeee unterstützen

Vielen Dank für deinen Support!
– Stefan Draeger

Kategorien

Tools

  • Unix-Zeitstempel-Rechner
  • ASCII Tabelle
  • Spannung, Strom, Widerstand und Leistung berechnen
  • Widerstandsrechner
  • 8×8 LED Matrix Tool
  • 8×16 LED Matrix Modul von Keyestudio
  • 16×16 LED Matrix – Generator

Links

Blogverzeichnis Bloggerei.de TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste Blogverzeichnis trusted-blogs.com

Stefan Draeger
Königsberger Str. 13
38364 Schöningen

Tel.: 01778501273
E-Mail: info@draeger-it.blog

Folge mir auf

  • Impressum
  • Datenschutzerklärung
  • Disclaimer
  • Cookie-Richtlinie (EU)
©2025 Technik Blog | Built using WordPress and Responsive Blogily theme by Superb
Cookie-Zustimmung verwalten
Wir verwenden Technologien wie Cookies, um Geräteinformationen zu speichern und/oder darauf zuzugreifen. Wir tun dies, um das Surferlebnis zu verbessern und um personalisierte Werbung anzuzeigen. Wenn Sie diesen Technologien zustimmen, können wir Daten wie das Surfverhalten oder eindeutige IDs auf dieser Website verarbeiten. Wenn Sie Ihre Zustimmung nicht erteilen oder zurückziehen, können bestimmte Funktionen beeinträchtigt werden.
Funktional Immer aktiv
Die technische Speicherung oder der Zugang ist unbedingt erforderlich für den rechtmäßigen Zweck, die Nutzung eines bestimmten Dienstes zu ermöglichen, der vom Teilnehmer oder Nutzer ausdrücklich gewünscht wird, oder für den alleinigen Zweck, die Übertragung einer Nachricht über ein elektronisches Kommunikationsnetz durchzuführen.
Vorlieben
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Statistiken
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt. Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Marketing
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.
Optionen verwalten Dienste verwalten Verwalten von {vendor_count}-Lieferanten Lese mehr über diese Zwecke
Einstellungen anzeigen
{title} {title} {title}