Aby napisać prosty generator losowych cytatów w Pythonie, potrzebujesz tylko kilku linijek kodu, zainstalowanego Pythona oraz pliku z listą cytatów (albo listy zapisanej w samym skrypcie). Taki generator może działać w terminalu, na stronie WWW, a nawet jako bot – ale zaczniemy od najprostszego wariantu.
- 1. Co zrobimy w tym poradniku
- 2. Instalacja Pythona (Windows, macOS, Linux)
- 3. Jak uruchamiać programy w Pythonie
- 4. Minimalny generator losowych cytatów (wersja 1)
- 5. Generator cytatów z pliku tekstowego (wersja 2)
- 6. Dodawanie nowych cytatów z poziomu programu (wersja 3)
- 7. Drobne ulepszenia i warianty
- 8. Jak wykorzystać generator na stronie o internecie
- 9. Dalsza nauka Pythona
1. Co zrobimy w tym poradniku
W tym poradniku krok po kroku:
- wyjaśnię, jak zainstalować Pythona (jeżeli jeszcze go nie masz),
- pokażę, jak uruchomić pierwszy prosty program w Pythonie,
- napiszemy minimalny generator losowych cytatów,
- na końcu podam pomysły, jak taki generator wykorzystać na stronie o internecie.
Dodatkowo rozbudujemy generator o:
- wczytywanie cytatów z pliku tekstowego,
- zapis cytatów do pliku,
- obsługę błędów,
- prosty interfejs w terminalu (menu).
Poradnik jest skierowany do osób początkujących, ale kod będzie napisany tak, by łatwo dało się go potem rozbudować.
2. Instalacja Pythona (Windows, macOS, Linux)
Jeżeli masz już Python 3 (np. 3.10, 3.11, 3.12), możesz ten punkt pominąć.
2.1. Sprawdzenie, czy Python jest zainstalowany
Otwórz odpowiednią konsolę systemową: w Windows – Wiersz polecenia (cmd) lub PowerShell; w macOS/Linux – Terminal.
Wpisz:
python --version
lub:
python3 --version
Jeżeli zobaczysz coś w stylu:
Python 3.11.4
To znaczy, że Python jest zainstalowany. Jeśli pojawi się komunikat o błędzie, zainstaluj go.
2.2. Instalacja (skrót)
Standardowa procedura:
- pobierz instalator Pythona dla swojego systemu ze strony python.org (sekcja Downloads – pobieranie),
- uruchom instalator,
- na Windows zaznacz opcję Add Python to PATH, dzięki czemu polecenie
pythonzadziała z wiersza poleceń, - przejdź przez kreator (Dalej → Dalej → Instaluj).
Po instalacji ponownie sprawdź wersję poleceniem: python --version. Szybka weryfikacja po instalacji oszczędzi Ci późniejszych problemów z uruchamianiem skryptów.
3. Jak uruchamiać programy w Pythonie
Będziemy korzystać z plików z rozszerzeniem .py.
Ogólny schemat pracy z programem w Pythonie:
- Otwórz dowolny edytor tekstu (może być Notatnik, ale lepiej: VS Code, PyCharm, Notepad++ itp.).
- Wpisz lub wklej kod programu.
- Zapisz plik pod nazwą, np.
cytaty.py. - W terminalu przejdź do katalogu z tym plikiem (np.
cd C:\projekty\python). - Uruchom skrypt poleceniem odpowiednim dla Twojego systemu.
Na Windows najczęściej użyj:
python cytaty.py
W Linux/macOS zwykle użyj:
python3 cytaty.py
To jest standardowy sposób uruchamiania prostych programów w Pythonie z linii poleceń.
4. Minimalny generator losowych cytatów (wersja 1)
Na początek zrobimy najprostszy możliwy generator, który ma listę cytatów w kodzie i po uruchomieniu losuje jeden cytat, wyświetlając go w terminalu.
4.1. Kod
Utwórz plik cytaty.py i wklej:
import random # moduł do losowania
cytaty = [
"Internet to największa biblioteka świata, w której połowa książek nie ma autora.",
"W internecie nic nie znika – tylko trudniej to znaleźć.",
"Jeśli coś jest za darmo, to Ty jesteś produktem.",
"Przed udostępnieniem czegokolwiek w sieci zadaj sobie pytanie: czy chciałbyś to zobaczyć na pierwszej stronie portalu jutro rano?",
"Silne hasło to takie, którego sam nie pamiętasz."
]
wybrany_cytat = random.choice(cytaty) # losujemy jeden element z listy
print("Twój losowy cytat:")
print(wybrany_cytat)
Uruchom w terminalu:
python cytaty.py
Za każdym razem powinien pojawić się inny cytat (choć losowo może się powtarzać).
5. Generator cytatów z pliku tekstowego (wersja 2)
Przechowywanie cytatów w kodzie ma minus: aby coś zmienić, trzeba edytować program. Wygodniej jest mieć osobny plik, np. cytaty.txt.
5.1. Przygotuj plik cytaty.txt
W tym samym katalogu, co cytaty.py, stwórz plik cytaty.txt, np. tak:
Internet to największa biblioteka świata, w której połowa książek nie ma autora.
W internecie nic nie znika – tylko trudniej to znaleźć.
Jeśli coś jest za darmo, to Ty jesteś produktem.
Przed udostępnieniem czegokolwiek w sieci zadaj sobie pytanie: czy chciałbyś to zobaczyć na pierwszej stronie portalu jutro rano?
Silne hasło to takie, którego sam nie pamiętasz.
Anonimowość w sieci kończy się tam, gdzie zaczyna się prawo.
Twoje dane są cenniejsze niż złoto – ale oddajesz je za darmo.
Każdy cytat w nowej linii.
5.2. Kod wczytujący cytaty z pliku
Nowa wersja cytaty.py:
import random
NAZWA_PLIKU = "cytaty.txt"
def wczytaj_cytaty(nazwa_pliku):
try:
with open(nazwa_pliku, "r", encoding="utf-8") as f:
linie = f.readlines()
except FileNotFoundError:
print(f"Nie znaleziono pliku: {nazwa_pliku}")
return []
# Oczyszczamy linie z białych znaków i usuwamy puste
cytaty = [linia.strip() for linia in linie if linia.strip()]
return cytaty
def losowy_cytat(cytaty):
if not cytaty:
return "Brak cytatów do wyświetlenia."
return random.choice(cytaty)
def main():
cytaty = wczytaj_cytaty(NAZWA_PLIKU)
cytat = losowy_cytat(cytaty)
print("Twój losowy cytat:")
print(cytat)
if __name__ == "__main__":
main()
Co tu się dzieje:
- wczytaj_cytaty(…) – otwiera plik, czyta wszystkie linie, usuwa puste i zwraca listę cytatów;
- brak pliku – jeśli plik nie istnieje, wyświetlany jest komunikat i zwracana pusta lista;
- losowy_cytat(…) – zwraca losowy cytat (albo komunikat, że brak cytatów);
- main() – spina wszystko w całość;
- if __name__ == „__main__”: – standardowy sposób uruchamiania programu w Pythonie z pliku.
6. Dodawanie nowych cytatów z poziomu programu (wersja 3)
Teraz rozbudujemy generator tak, aby można było:
- wylosować cytat,
- dodać nowy cytat do pliku,
- zakończyć program.
Zrobimy proste menu tekstowe w terminalu.
6.1. Rozszerzony kod
import random
import os
NAZWA_PLIKU = "cytaty.txt"
def wczytaj_cytaty(nazwa_pliku):
if not os.path.exists(nazwa_pliku):
# Jeśli plik nie istnieje – tworzymy pusty
open(nazwa_pliku, "a", encoding="utf-8").close()
with open(nazwa_pliku, "r", encoding="utf-8") as f:
linie = f.readlines()
cytaty = [linia.strip() for linia in linie if linia.strip()]
return cytaty
def zapisz_cytat(nazwa_pliku, cytat):
cytat = cytat.strip()
if not cytat:
print("Nie można zapisać pustego cytatu.")
return
with open(nazwa_pliku, "a", encoding="utf-8") as f:
f.write(cytat + "\n")
print("Cytat zapisany.")
def losowy_cytat(cytaty):
if not cytaty:
return "Brak cytatów do wyświetlenia. Dodaj coś najpierw!"
return random.choice(cytaty)
def wyswietl_menu():
print()
print("=== Generator losowych cytatów o internecie ===")
print("1. Wylosuj cytat")
print("2. Dodaj nowy cytat")
print("3. Wyjście")
def main():
while True:
wyswietl_menu()
wybor = input("Wybierz opcję (1-3): ").strip()
if wybor == "1":
cytaty = wczytaj_cytaty(NAZWA_PLIKU)
print()
print("Twój losowy cytat:")
print(losowy_cytat(cytaty))
elif wybor == "2":
print()
nowy = input("Wpisz nowy cytat: ")
zapisz_cytat(NAZWA_PLIKU, nowy)
elif wybor == "3":
print("Do zobaczenia!")
break
else:
print("Nieprawidłowa opcja, spróbuj ponownie.")
if __name__ == "__main__":
main()
Ta wersja nadaje się już jako prosta aplikacja konsolowa – idealna do artykułu instruktażowego dokładnie takiego jak ten.
7. Drobne ulepszenia i warianty
Poniżej kilka rozszerzeń, które możesz dodać w zależności od potrzeb strony.
7.1. Autor cytatu i kategoria
Zamiast przechowywać tylko tekst, możesz dodać autora i kategorię (np. „bezpieczeństwo”, „media społecznościowe”, „prywatność”).
Najprostszy format w pliku: jedna linia = cytat | autor | kategoria
Przykład cytaty.txt:
Jeśli coś jest za darmo, to Ty jesteś produktem. | Anonim | prywatność
Silne hasło to takie, którego sam nie pamiętasz. | Anonim | bezpieczeństwo
Twoje dane są cenniejsze niż złoto – ale oddajesz je za darmo. | Anonim | prywatność
Przykładowy zapis i odczyt (w skrócie):
def wczytaj_cytaty_zaawansowane(nazwa_pliku):
wynik = []
with open(nazwa_pliku, "r", encoding="utf-8") as f:
for linia in f:
linia = linia.strip()
if not linia:
continue
czesci = [x.strip() for x in linia.split("|")] # oczekujemy: cytat | autor | kategoria
if len(czesci) == 3:
cytat, autor, kategoria = czesci
elif len(czesci) == 2:
cytat, autor = czesci
kategoria = ""
else:
cytat = linia
autor = ""
kategoria = ""
wynik.append({
"cytat": cytat,
"autor": autor,
"kategoria": kategoria
})
return wynik
Możesz potem losować cytat z filtrowaniem po kategorii albo formatować wyjście w stylu: „Cytat” — Autor [Kategoria].
7.2. Generator cytatu „na start systemu” (Linux/macOS)
Na systemach unixowych możesz dodać wywołanie skryptu do plików startowych powłoki (np. .bashrc, .zshrc), aby za każdym razem po otwarciu terminala wyświetlał losowy cytat o internecie.
Przykład (fragment .bashrc):
python3 /ścieżka/do/cytaty.py
Za każdym razem, gdy otworzysz terminal, zobaczysz losowy cytat.
8. Jak wykorzystać generator na stronie o internecie
Masz już działający kod w Pythonie. Jak to połączyć z polską stroną internetową o internecie? Kilka scenariuszy:
- artykuł poradnikowy – dokładnie taki jak ten; poniżej lista elementów, które warto pokazać;
- sekcja „Cytat dnia” – generator może tworzyć statyczny fragment HTML z cytatem, który wstawisz do CMS jako include;
- API cytatów – opakuj generator w serwer HTTP (np. Flask lub FastAPI), który zwraca JSON; strona w JavaScript pobierze cytat przez AJAX;
- narzędzie edukacyjne – dodaj kategorię „bezpieczeństwo” i generuj cytaty ostrzegające przed phishingiem, słabymi hasłami i nadmiernym udostępnianiem danych.
Co warto pokazać w artykule poradnikowym:
- opis instalacji Pythona,
- wklejone pełne przykłady kodu,
- zrzuty ekranu z terminala (użytkownik widzi efekt).
9. Dalsza nauka Pythona
Oficjalny samouczek Pythona uczy krok po kroku składni, typów, funkcji, modułów i pracy z plikami – dokładnie tak jak w powyższych przykładach.
Warto też sięgnąć po polskie materiały typu „Python dla wszystkich”, które rozwijają podstawy programowania i praktyczne zastosowania w analizie danych, pracy z plikami czy sieci. Jeśli chcesz, mogę przygotować kolejną część: jak z tego generatora zrobić prostego bota na Telegramie albo mikroserwis HTTP zwracający cytat jako JSON.








