Hey,
bin neu in dem Forum hier und versuche grade Python zu lernen.
Aber ich verstehe da so ein paar Ding nicht, vllt könnt ihr mir ja helfen.
1. Was macht %?
1.1 Was macht % bei den Mathe zeichen?
1.2 Was macht % wenn da Buchstaben dabei sind.
hab hier sone Liste (http://www.tutorialspoint.com/python/python_strings.htm), da soll das, soweit ich weiß mit erklärt sein, aber ich verstehe es trotzdem nicht.
vllt könnt ihr mir ja helfen
Danke schonmal im Vorraus
LG
was macht % ?
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Hallo sashpta, willkommen im Forum,
Der %-Operator hat in Python zwei Beduetungen: Bei Strings setzt er traditionell Werte ein, so wird aus dem Ausdruck "Hallo %s" % "sashpta" der String "Hallo sashpta". Bei Fahlen bedeutet % Modulo, also den Rest bei ganzzahliger Division.
Der %-Operator hat in Python zwei Beduetungen: Bei Strings setzt er traditionell Werte ein, so wird aus dem Ausdruck "Hallo %s" % "sashpta" der String "Hallo sashpta". Bei Fahlen bedeutet % Modulo, also den Rest bei ganzzahliger Division.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
In der Dokumentation gibt es noch einen Index, insbesondere auch fuer Zeichen: https://docs.python.org/2/genindex-Symbols.html
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
Erstmal danke
So wie ich das jetzt verstanden habe ist es so
ich schreibe einen string setzte % und nen Buchstaben mit rein und definieren auserhalt(hinter) dem String das %?
->
oder?
aber wenn ich z.b.
schreibe kommt irgendwie das selbe bei raus.
also wofür braucht man die verschiedenen Buchstaben hinter dem %? So weit ich das jetzt verstanden habe braucht man einen Buchstaben dahinter, weil wenn man schreibt
dann will der das "J" von Jahre als Buchstabe nehmen und es gibt eine Fehlermeldung.
oder ist das % einfach nur dafür da um die oben definierte Variable (ist das eine? also in dem Bsp. jetzt das age = 16) einzufügen?
wenn das so wäre wie macht man es dann z.B. wenn man das hier hat?
weil so wie es jetzt ist geht es nicht, da bekommt man eine Fehlermeldung.
Hoffe mir kann das jemand erklären.
LG
So wie ich das jetzt verstanden habe ist es so
ich schreibe einen string setzte % und nen Buchstaben mit rein und definieren auserhalt(hinter) dem String das %?
->
Code: Alles auswählen
age = 16
print "Er ist %s Jahre alt" % age
aber wenn ich z.b.
Code: Alles auswählen
age = 16
print "Er ist %r Jahre alt" % age
also wofür braucht man die verschiedenen Buchstaben hinter dem %? So weit ich das jetzt verstanden habe braucht man einen Buchstaben dahinter, weil wenn man schreibt
Code: Alles auswählen
age = 16
print "Er ist % Jahre alt" %age
oder ist das % einfach nur dafür da um die oben definierte Variable (ist das eine? also in dem Bsp. jetzt das age = 16) einzufügen?
wenn das so wäre wie macht man es dann z.B. wenn man das hier hat?
Code: Alles auswählen
age = 16
age2 = 2154
print "A ist %s *age* Jahre alt, B ist %r *age2* Jahre alt." %s age, %r age2
Hoffe mir kann das jemand erklären.
LG
@sashpta: Die verschiedenen Buchstaben braucht man für verschiedene Arten die Werte zu formatieren. Bei ganzen Zahlen ist die Zeichenkettendarstellung halt zufällig die gleiche wie die `repr()`-Darstellung. Und in der Regel auch die gleiche wie die Darstellung als ganzer Zahl. Das ist aber nicht bei allen Datentypen so.
Wie man mehr als einen Platzhalter durch einen Wert ersetzt sieht man doch in dem von Dir verlinkten Tutorial. Ansonsten gibt es da noch das Tutorial in der Python-Dokumentation und die Referenzdokumentation selbst wo der ``%``-Operator beschrieben wird. Das ist ein binärer Operator wie ``*`` oder ``/``, darum macht Deine letzte Zeile so gar keinen Sinn. Die ist offensichtlich syntaktisch falsch. Da müssen rechts und links passende Werte oder Ausdrücke stehen die zu solchen Werten ausgewertet werden können.
Edit: In neuem Quelltext würde ich in der Regel die `format()`-Methode auf Zeichenketten dem ``%``-Operator vorziehen.
Code: Alles auswählen
In [26]: name = 'Peter'
In [27]: print 'Hallo %s!' % name
Hallo Peter!
In [28]: print 'Hallo %r!' % name
Hallo 'Peter'!
Edit: In neuem Quelltext würde ich in der Regel die `format()`-Methode auf Zeichenketten dem ``%``-Operator vorziehen.
Danke
und was macht %r genau? das ist in dem Tutorial nicht beschrieben (oder ich finde es nicht).
warum hast du geschrieben "" vor dem " "
das selbe in Zeile 3 und 6.
und was macht %r genau? das ist in dem Tutorial nicht beschrieben (oder ich finde es nicht).
warum hast du geschrieben "
Code: Alles auswählen
In [26]:
Code: Alles auswählen
name = 'Peter'
das selbe in Zeile 3 und 6.
@sashpta: Beim '%r' Platzhalter wird das Objekt mit der `repr()`-Funktion in eine Zeichenkette umgewandelt statt mit `str()`
Die nummerierten 'In' habe nicht ich geschrieben sondern die Python-Shell die ich verwende: IPython. Die Standard-Pythonshell verwendet dafür '>>>' ohne eine Nummer.
Die nummerierten 'In' habe nicht ich geschrieben sondern die Python-Shell die ich verwende: IPython. Die Standard-Pythonshell verwendet dafür '>>>' ohne eine Nummer.
@sashpta: `repr()` ist eine Funktion in Python die zu den Funktionen gehört die man benutzen kann ohne irgendetwas importieren zu müssen. Was die Funktion macht, steht in der Python-Dokumentation.
das ist ja der Punkt ich arbeite grade ein Buch durch und dort bin ich an dem % hängengeblieben und hab's nicht mehr gerafft.darktrym hat geschrieben:Meinst du nicht auch, es wird Zeit langsam mal ein Buch oder Tutorial durchzuarbeiten?
Vielen DankBlackJack hat geschrieben:@sashpta: `repr()` ist eine Funktion in Python die zu den Funktionen gehört die man benutzen kann ohne irgendetwas importieren zu müssen. Was die Funktion macht, steht in der Python-Dokumentation.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Ich würde dir raten %d zu nutzen, weil dann wissen Leute instant was es macht, wohingegen %i eher exotisch ist und für viele (mich eingeschlossen), erstmal ein Blick in die Dokumentation fällig wäre.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice