Służą do formatowania ciągów. %s
pełni rolę symbolu zastępczego dla ciągu znaków, podczas gdy %d
pełni rolę symbolu zastępczego dla liczby. Powiązane z nimi wartości są przekazywane za pośrednictwem krotki przy użyciu %
operatora.
name = 'marcog'
number = 42
print '%s %d' % (name, number)
wydrukuje marcog 42
. Zwróć uwagę, że nazwa jest łańcuchem (% s), a liczba jest liczbą całkowitą (% d jako dziesiętna).
Szczegółowe informacje można znaleźć pod adresem https://docs.python.org/3/library/stdtypes.html#printf-style-string-formatting .
W Pythonie 3 przykładem byłoby:
print('%s %d' % (name, number))
%s
jest używany z konfiguracjami wyszukiwarek. Chrome%s
zastępuje słowa kluczowe wpisane w pasku adresu. Python używa%s
w podobny sposób. Wprint('description: %s' % descrip)
tym%s
operatora zostaną zastąpione przez ciąg tekstowy przechowywany wdescrip
zmiennej. Nawiasy okrągłe zapobiegają wyświetlaniu komunikatu o błędzie w Pythonie 3.z pythona 3 doc
%d
dotyczy liczby całkowitej dziesiętnej%s
jest dla ogólnego ciągu lub obiektu, aw przypadku obiektu zostanie przekonwertowany na łańcuchRozważmy następujący kod
wyjście będzie
jak widać,
%d
spowoduje obcięcie do liczby całkowitej,%s
zachowa formatowanie,%f
wydrukuje jako zmiennoprzecinkowe i%g
jest używane jako liczba ogólnaoczywiście
wygeneruje wyjątek; nie możesz zamienić łańcucha na liczbę
źródło
%s
zamiast tego został użyty jako liczba.%s
jest używany jako symbol zastępczy dla wartości ciągu, które chcesz wstrzyknąć do sformatowanego ciągu.%d
jest używany jako symbol zastępczy wartości liczbowych lub dziesiętnych.Na przykład (dla Pythona 3)
Wyjście
źródło
Oto symbole zastępcze:
Na przykład:
'Hi %s I have %d donuts' %('Alice', 42)
Ten wiersz kodu zastąpi% s Alice (str), a% d 42.
Wynik:
'Hi Alice I have 42 donuts'
W większości przypadków można to osiągnąć za pomocą „+”. Aby lepiej zrozumieć swoje pytanie, możesz również sprawdzić {} / .format (). Oto jeden przykład: formatowanie napisów w Pythonie:% kontra .format
zobacz także film instruktażowy google Python @ 40 ', zawiera kilka wyjaśnień https://www.youtube.com/watch?v=tKTZoB2Vjuk
źródło
%d
I%s
ciąg formatowanie „polecenia” są stosowane do ciągów wielkoformatowych. To%d
jest dla liczb i%s
dla łańcuchów.Dla przykładu:
i
Aby przekazać wiele argumentów:
print("%s %s %s%d" % ("hi", "there", "user", 123456))
wrócihi there user123456
źródło
Są to wszystko pouczające odpowiedzi, ale żadna z nich nie jest w pełni zrozumiała, jaka jest różnica między
%s
a%d
.%s
mówi programowi formatującemu, aby wywołałstr()
funkcję na argumencie, a ponieważ z definicji wymuszamy na łańcuchu, w%s
zasadzie po prostu wykonujestr(arg)
.%d
z drugiej strony odwołujeint()
się do argumentu przed wywołaniemstr()
, na przykładstr(int(arg))
Spowoduje to zarównoint
przymus, jak istr
przymus.Na przykład mogę zamienić wartość szesnastkową na dziesiętną,
lub obcięcie pływaka.
Ale operacja zgłosi wyjątek, jeśli argument nie jest liczbą.
Więc jeśli intencją jest tylko zadzwonić
str(arg)
, to%s
jest wystarczające, ale jeśli potrzebujesz dodatkowego formatowania (jak formatowanie zmiennoprzecinkowych miejsc dziesiętnych) lub innego przymusu, potrzebne są inne symbole formatu.W przypadku
f-string
notacji, gdy opuścisz formater, wartością domyślną jeststr
.To samo dotyczy
string.format
; wartość domyślna tostr
.źródło
%d
i%s
są symbolami zastępczymi, działają jako zmienna wymienna. Na przykład, jeśli utworzysz 2 zmiennemożesz przypisać te zmienne do zdania w łańcuchu za pomocą krotki zmiennych.
Zauważ, że
%s
działa dla String i%d
działa dla zmiennych numerycznych lub dziesiętnych.jeśli wydrukujesz
variable_3
, będzie wyglądać takSzukałem odpowiedzi w StackOverflow i znalazłem ponad 45 odpowiedzi na moje pytanie.
źródło
Są to specyfikatory formatu. Są używane, gdy chcesz zawrzeć wartość wyrażeń Pythona w łańcuchach, z wymuszonym określonym formatem.
Aby uzyskać stosunkowo szczegółowe wprowadzenie, zobacz Zanurz się w Pythonie .
źródło
Zgodnie z najnowszymi standardami tak powinno być.
Sprawdź dokumentację python3.6 i przykładowy program
źródło
Jeśli chcesz uniknąć% s lub% d, to ...
Wynik:
źródło
%s
i%d
.print
jest funkcją w Pythonie 3, a nie instrukcją.% s służy do przechowywania miejsca dla ciągu znaków% d służy do przechowywania miejsca na liczbę
Wyjście programu
ten film szczegółowo omawia tę wskazówkę https://www.youtube.com/watch?v=4zN5YsuiqMA
źródło
skoro o tym mowa ...
python3.6 jest
f-strings
znacznie łatwiejszy w formatowaniu!teraz, jeśli twoja wersja Pythona jest większa niż 3.6, możesz sformatować swoje ciągi za pomocą tych dostępnych metod:
źródło