Seite 1 von 1

was macht % ?

Verfasst: Donnerstag 4. Dezember 2014, 23:01
von sashpta
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

Re: was macht % ?

Verfasst: Donnerstag 4. Dezember 2014, 23:12
von Leonidas
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.

Re: was macht % ?

Verfasst: Freitag 5. Dezember 2014, 02:37
von cofi
In der Dokumentation gibt es noch einen Index, insbesondere auch fuer Zeichen: https://docs.python.org/2/genindex-Symbols.html

Re: was macht % ?

Verfasst: Samstag 6. Dezember 2014, 19:29
von sashpta
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 %?
->

Code: Alles auswählen

age = 16
print "Er ist %s Jahre alt" % age
oder?

aber wenn ich z.b.

Code: Alles auswählen

age = 16
print "Er ist %r Jahre alt" % age 
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

Code: Alles auswählen

age = 16
print "Er ist % Jahre alt" %age
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?

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
weil so wie es jetzt ist geht es nicht, da bekommt man eine Fehlermeldung.

Hoffe mir kann das jemand erklären.

LG

Re: was macht % ?

Verfasst: Samstag 6. Dezember 2014, 19:54
von BlackJack
@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.

Code: Alles auswählen

In [26]: name = 'Peter'

In [27]: print 'Hallo %s!' % name
Hallo Peter!

In [28]: print 'Hallo %r!' % name
Hallo 'Peter'!
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.

Re: was macht % ?

Verfasst: Samstag 6. Dezember 2014, 20:28
von sashpta
Danke

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]:
" vor dem "

Code: Alles auswählen

name = 'Peter'
"
das selbe in Zeile 3 und 6.

Re: was macht % ?

Verfasst: Samstag 6. Dezember 2014, 21:02
von BlackJack
@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.

Re: was macht % ?

Verfasst: Samstag 6. Dezember 2014, 21:25
von sashpta
achso oke

und was ist repr() ? hab das noch nie gehört. :?

Sorry das ich als so blöd nachfrage.

Danke :)

Re: was macht % ?

Verfasst: Samstag 6. Dezember 2014, 21:28
von darktrym
Meinst du nicht auch, es wird Zeit langsam mal ein Buch oder Tutorial durchzuarbeiten?

Re: was macht % ?

Verfasst: Samstag 6. Dezember 2014, 21:45
von BlackJack
@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.

Re: was macht % ?

Verfasst: Samstag 6. Dezember 2014, 23:42
von sashpta
darktrym hat geschrieben:Meinst du nicht auch, es wird Zeit langsam mal ein Buch oder Tutorial durchzuarbeiten?
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.

Re: was macht % ?

Verfasst: Samstag 6. Dezember 2014, 23:44
von sashpta
BlackJack 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.
Vielen Dank :)

Re: was macht % ?

Verfasst: Sonntag 7. Dezember 2014, 22:49
von sashpta
Ich hätte da noch eine Frage. Laut der Liste die ich habe, haben '%i' und '%d' die selbe Funktion.

%i - signed decimal integer
%d - signed decimal integer

wofür braucht man 2 mal das selbe?

Re: was macht % ?

Verfasst: Sonntag 7. Dezember 2014, 22:52
von Sirius3
@sashpta: nennen wir es historische Gründe. Brauchen tut man's nicht, ist halt da.

Re: was macht % ?

Verfasst: Sonntag 7. Dezember 2014, 22:59
von sashpta
Danke für die Antworten und die Hilfe :)

Re: was macht % ?

Verfasst: Sonntag 7. Dezember 2014, 23:00
von sashpta
Sirius3 hat geschrieben:@sashpta: nennen wir es historische Gründe. Brauchen tut man's nicht, ist halt da.
oke, danke also ist egal was man nimmt?

Re: was macht % ?

Verfasst: Sonntag 7. Dezember 2014, 23:18
von Leonidas
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.