Formatowanie Napisow


W Pythonie formatujemy prawie tak samo jak w C. Po komendzie print umieszczasz napis, który ma zostać wyświetlony. Oprócz zwykłego tekstu będzie zawierał także specjalne symbole np. %s czy %d. Po cudzysłowie zamykającym napis umieszczasz znak %, a po nim zmienne lub wyrażenia odpowiadające użytym wcześniej symbolom. Zmienne muszą być umieszczone w nawiasach (), chyba że jest tylko jedna zmienna. Wtedy możesz je pominąć.

Powiedzmy, że masz zmienną o nazwie imie z zawarta w niej nazwą użytkownika i chcesz wypisać właśnie dla niego tekst powitalny.

imie = "Marek"
print "Witaj, %s!" % imie
imie = "Dorota"
print "Witaj, %s!" % imie

Umieszczając symbol %s w formatowanym napisie informujemy komputer, że chcemy, aby odczytał zapisaną zmienną jako string. Jeśli chcemy wyświetlić liczbę całkowitą, używamy symbolu %d.

# To wypisze "Marek ma 23 lata."
imie = "Marek"
wiek = 23
print "%s ma %d lata." % (imie, wiek)

Jeżeli użyjesz symbolu %s na obiekcie, który nie jest tablicą, to zostanie automatycznie wywołana metoda repr. Pozwala na wyświetlenie zawartości obiektu.

# To wypisze: Tablica: [1, 2, 3]
MojaTab = [1,2,3]
print "Tablica: %s" % MojaTab

Jeżeli zaś spróbujesz odczytać napis jako np. liczbę całkowitą to otrzymasz w efekcie błąd.

imie = "Jacek"
liczba = 4
print "liczba = %d" % liczba
print "imie = %s" % imie
print "imie = %d" % imie
# powyzsza linijka spowoduje blad wykonania

Zestaw danych, które mają być wypisane, może być zapisany wcześniej w swego rodzaju uporządkowanej tablicy, którą będziemy nazywać krotką (z ang. tuple). Krotki, w przeciwieństwie do tablic są niemutowalne – nie możemy zmienić ich zawartości.

# tak tworzymy krotke
dane = ("Dorota", 5, 32)

print "%s mieszka w bloku nr %d w mieszkaniu %d" % dane

Poniżej znajduje się kilka podstawowych specyfikatorów, których znaczenie dobrze zapamiętać:

  • %s – Napis (lub każdy inny obiekt, który ma reprezentację w formie napisu, np. liczba, tablica)
  • %d – Liczby całkowite
  • %f – Liczby rzeczywiste
  • %.<ilość cyfr> – Liczba zmiennoprzecinkowa ze stałą liczbą cyfr po kropce.
  • %x/%X – Liczby całkowite zapisane w systemie szesnastkowym (małe/duże litery)

Poniżej garść przykładów. Warto wkleić je do okna i zobaczyć jak się zachowa program.

rzeczywista_1 = 4.34
rzeczywista_2 = 54.432
calkowita = 16

print "rzeczywista_1 = %f" % rzeczywista_1
print "rzeczywista_2 = %f" % rzeczywista_2
print "rzeczywista_2 = %.1f" % rzeczywista_2
print "W systemie szesnastkowym %d ma postac %X" % (calkowita, calkowita)

Ćwiczenie

Za pomocą formatowania uzyskaj na wyjściu następujący tekst: Czesc Jacek i Darek. Temperatura na zewnatrz wynosi 44.4 stopnie Celsjusza.


Copyright © learnpython.org. Read our Terms of Use and Privacy Policy