Funkcja print()


🖨️ Funkcja print() w Pythonie – jak działa i co potrafi?

Jedną z pierwszych rzeczy, jakich uczymy się w Pythonie, jest polecenie:

print("Hello, world!")

To klasyczny przykład pierwszego programu, ale za tą prostą funkcją kryje się znacznie więcej.
W tym wpisie przyjrzymy się dokładnie temu, jak działa print(), jakie ma parametry i jak można z niej wycisnąć maksimum możliwości.


🧩 Co robi print()?

Funkcja print() służy do wyświetlania danych na ekranie (na tzw. standardowe wyjście).
Może to być tekst, liczba, wynik obliczenia, a nawet kilka wartości naraz.

print("Witaj w Pythonie!")
print(2 + 2)
print("Wynik to:", 2 + 2)

Wynik działania:

Witaj w Pythonie!
4
Wynik to: 4

⚙️ Składnia funkcji print()

Ogólna postać wygląda tak:

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

Omówmy po kolei najważniejsze parametry.


🧱 1. *objects – co chcesz wypisać

print() może przyjmować dowolną liczbę argumentów.
Każdy z nich zostanie przekształcony na tekst i wypisany w kolejności, w jakiej został podany.

print("Imię:", "Alicja", "Wiek:", 25)

Wynik:

Imię: Alicja Wiek: 25

🔤 2. sep – separator między elementami

Domyślnie print() oddziela elementy spacją, ale można to zmienić przy pomocy parametru sep.

print("A", "B", "C", sep="-")

Wynik:

A-B-C

To bardzo przydatne np. przy tworzeniu formatów CSV lub niestandardowych raportów.


↩️ 3. end – co dodać na końcu

Domyślnie każda instrukcja print() kończy się znakiem nowej linii (\n).
Można to zmienić:

print("To jest", end=" ")
print("ten sam wiersz.")

Wynik:

To jest ten sam wiersz.

Inny przykład:

for i in range(5):
    print(i, end=", ")

Wynik:

0, 1, 2, 3, 4,

📂 4. file – gdzie wysłać dane

Zazwyczaj print() wypisuje na ekran (czyli do sys.stdout),
ale można przekierować wynik np. do pliku:

with open("log.txt", "w") as f:
    print("Zapisano dane do pliku.", file=f)

Po uruchomieniu w pliku log.txt znajdzie się tekst:

Zapisano dane do pliku.

💨 5. flush – natychmiastowe wypisanie

Zazwyczaj Python buforuje dane przed ich wyświetleniem.
Ustawienie flush=True wymusza natychmiastowe wypisanie treści (np. przy logowaniu w czasie rzeczywistym):

import time

for i in range(3):
    print(f"Postęp: {i+1}/3", end="\r", flush=True)
    time.sleep(1)

🎨 Formatowanie tekstu z print()

Często chcemy łączyć tekst z danymi.
W Pythonie istnieje kilka sposobów:

🔸 F-string (najczęściej używany):

name = "Ola"
age = 22
print(f"Użytkownik {name} ma {age} lata.")

🔸 str.format():

print("Użytkownik {} ma {} lata.".format(name, age))

🔸 Konkatenacja:

print("Użytkownik " + name + " ma " + str(age) + " lata.")

🧠 Ciekawostki

  • print() zwraca zawsze None – nie można więc przypisać jej wyniku do zmiennej.

  • W Pythonie 2 funkcja print była instrukcją, nie funkcją. W Pythonie 3 musi mieć nawiasy.

  • Możesz wypisywać nawet struktury danych:

    print([1, 2, 3])
    print({"klucz": "wartość"})
    

🧭 Podsumowanie

Funkcja print() to coś więcej niż tylko narzędzie do debugowania.
Pozwala w prosty sposób prezentować dane, tworzyć raporty, debugować skrypty i logować działanie programu.

Najważniejsze, co warto zapamiętać:

Parametr Opis Domyślna wartość
sep Separator między elementami ' '
end Znak końca linii '\n'
file Gdzie wysłać dane sys.stdout
flush Wymuszenie natychmiastowego wypisania False

🐍 Pro tip:
Gdy tworzysz większy projekt, zastanów się nad użyciem modułu logging zamiast print().
Daje on większą kontrolę nad poziomami komunikatów, formatowaniem i zapisem do plików.


Czy chcesz, żebym przygotował krótszą wersję tego wpisu (np. do mediów społecznościowych) lub rozszerzoną wersję z przykładami praktycznego zastosowania print() w debugowaniu?

 

Komentarze

Popularne posty