Robię to w Pythonie 2:
"(%d goals, $%d)" % (self.goals, self.penalties)
Jaka jest wersja tego Pythona 3?
Próbowałem szukać przykładów w Internecie, ale nadal otrzymywałem wersje Pythona 2.
python
python-3.x
string
JoseBazBaz
źródło
źródło
Odpowiedzi:
Oto dokumenty dotyczące „nowej” składni formatu. Przykładem może być:
Jeśli oba
goals
ipenalties
są liczbami całkowitymi (tj. Ich domyślny format jest w porządku), można go skrócić do:A ponieważ parametry są polami typu
self
, istnieje również sposób, aby zrobić to za pomocą pojedynczego argumentu dwukrotnie (jak @Burhan Khalid zauważył w komentarzach):Wyjaśnienie:
{}
oznacza tylko następny argument pozycyjny, z domyślnym formatem;{0}
oznacza argument z indeksem0
, z domyślnym formatem;{:d}
jest kolejnym argumentem pozycyjnym w formacie dziesiętnej liczby całkowitej;{0:d}
jest argumentem z indeksem0
, z dziesiętną liczbą całkowitą.Istnieje wiele innych rzeczy, które możesz zrobić, wybierając argument (używając nazwanych argumentów zamiast pozycyjnych, uzyskując dostęp do pól itp.), A także wiele opcji formatowania (uzupełnianie liczby, użycie separatorów tysięcy, wyświetlanie znaku lub nie itp.). Kilka innych przykładów:
Uwaga: Jak zauważyli inni, nowy format nie zastępuje poprzedniego, oba są dostępne zarówno w Pythonie 3, jak i nowszych wersjach Pythona 2. Niektórzy mogą powiedzieć, że to kwestia preferencji, ale IMHO nowszy jest znacznie bardziej wyrazisty niż starszy i powinien być używany przy każdym pisaniu nowego kodu (chyba że jest przeznaczony dla starszych środowisk, oczywiście).
źródło
"({0.goals} goals, ${0.penalties})".format(self)
"conversion rate: {:.2%}".format(self.goals / self.shots)
? U mnie działa dobrze, ponieważ jest ... (Python 3.4) Zauważ, że nie maf
w tym nic, proszę o formatowanie jako procent, a nie jako liczba zmiennoprzecinkowa."{:.2f}%".format(float_num)
działa dobrze dla obu.$
ma tutaj specjalnego znaczenia, ani w starej składni formatu, ani w nowej, dlatego powinno być obecne w wygenerowanym ciągu niezmienione.Python 3.6 obsługuje teraz skróconą interpolację literału ciągów w PEP 498 . W twoim przypadku nowa składnia jest po prostu:
Jest to podobne do poprzedniego
.format
standardu, ale pozwala łatwo robić takie rzeczy, jak :źródło
Ta linia działa tak, jak jest w Pythonie 3.
źródło
Podoba mi się to podejście
Zwróć uwagę na odpowiednio dołączone d i s do nawiasów.
wynik będzie:
źródło