String Modul Operator Platzhalter

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
paradiesvogel24
User
Beiträge: 36
Registriert: Dienstag 31. Oktober 2017, 18:06

Hallo zusammen :lol:
arbeite mich gerade in Python ein und versuche die Taste oder die Tastenkombination: "String Modul Operator Taste zu finden und verzweifel schon.

Dachte das es die Prozentaste über der taste 5 ist und mit CTR*5 zu erreichen ist aber das Zeichen sieht anders aus.

Weder im Forum noch bei google bin ich fündig geworden.

Es handelt sich um dieses Zeichen:"%"

Bitte um schnelle Hilfe. leider auch über Sonderzeichen nicht zu finden.

Vielen Dank im Voraus.
Sirius3
User
Beiträge: 17754
Registriert: Sonntag 21. Oktober 2012, 17:20

@paradiesvogel24: Du meinst den Modulo-Operator `%`, was tatsächlich das Prozentzeichen ist - Shift+5 und nicht Ctrl+5.
narpfel
User
Beiträge: 645
Registriert: Freitag 20. Oktober 2017, 16:10

@paradiesvogel24: Meistens möchte man den alten Stringformatierungsoperator `%`allerdings nicht mehr benutzen, sondern die `format`-Methode von Strings:

Code: Alles auswählen

# Alt:
>>> "Hallo %s! %d" % ("Welt", 42)
'Hallo Welt! 42'
# Schöner ist
>>> "Hallo {}! {}".format("Welt", 42)
'Hallo Welt! 42'
paradiesvogel24
User
Beiträge: 36
Registriert: Dienstag 31. Oktober 2017, 18:06

Ok vielen Dank.
Dann lag es wohl mal wieder an einem Rechtschreibfehler den ich nicht gefunden hatte. dachte es gibt noch ein anderes Zeichen als das Prozentzeichen?

Arbeite gerade das Buch"Python kinderleicht" da ich die anderen etwas schwieriger finde und das Buch ist von 2016 da sollte es doch aktuell sein.

Wie würde es dann in diesem Code nach der neuen Methode aussehen:
Witztext = '%s: eine Vorrichtung zum Auffinden von Möbeln im Dunklen'
Körperteil1 = 'Knie'
Körperteil2 = 'Schienbein'
print(Witztext % Körperteil1)
print(Witztext % Körperteil2)
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

so:

Code: Alles auswählen

witztext = '{}: eine Vorrichtung zum Auffinden von Möbeln im Dunklen'
körperteil1 = 'Knie'
körperteil2 = 'Schienbein'
print(witztext.format(körperteil1))
print(witztext.format(körperteil2))
Variablennamen schreibt man in Python per Konvention klein, nicht groß. Und wenn man anfängt, Variablen zu nummerieren, dann gibt es in der Regel eine bessere Datenstruktur. Z.B. per Liste:

Code: Alles auswählen

witztext = '{}: eine Vorrichtung zum Auffinden von Möbeln im Dunklen'
körperteile = ['Knie', 'Schienenbein']
for körperteil in körperteile:
    print(witztext.format(körperteil))
Gruß, noisefloor
narpfel
User
Beiträge: 645
Registriert: Freitag 20. Oktober 2017, 16:10

Das würde so aussehen:

Code: Alles auswählen

Witztext = '{}: eine Vorrichtung zum Auffinden von Möbeln im Dunklen'
Körperteil1 = 'Knie'
Körperteil2 = 'Schienbein'
print(Witztext.format(Körperteil1))
print(Witztext.format(Körperteil2))
Allerdings würde man das eher nicht so schreiben, weil durchnummerierte Name meist ein Zeichen dafür sind, dass es eigentlich eine bessere Methode gibt, meistens eine Liste. Außerdem halten sich die Namen nicht an PEP8 (da sollte man auch als Anfänger mal einen Blick reinwerfen, damit man sich mögliche schlechte Angewohnheiten gar nicht erst angewöhnt und später wieder entlernen muss).

Code: Alles auswählen

körperteile = ["Knie", "Schienbein"]
for körperteil in körperteile:
    print("{}: eine Vorrichtung zum Auffinden von Möbeln im Dunklen".format(körperteil))
Arbeite gerade das Buch"Python kinderleicht" da ich die anderen etwas schwieriger finde und das Buch ist von 2016 da sollte es doch aktuell sein.
Naja, das Buch ist die zweite Auflage einer Übersetzung eines englischen Buchs von 2012. In Python 2 war die alte Stringformatierung noch verbreiteter und die neue erst mit Python 2.7 richtig eingeführt. Und das ist von 2010. Es kann also gut sein, dass der Autor sich 2012 noch nicht umgewöhnt hatte und seit dem hat es niemand mehr geändert. Im Programmierkontext ändert sich manchmal relativ schnell was und dadurch veralten Bücher schneller. Und im Gegensatz zu Webseiten kann man tote Bäume halt nicht mehr aktualisieren.

[Edit]: noisefloor war schneller... Naja, doppelt hält besser. :wink:
paradiesvogel24
User
Beiträge: 36
Registriert: Dienstag 31. Oktober 2017, 18:06

SUPER,
herzlichen Dank für die Aufklärung.

LG :roll:
Antworten