Szyfr Cezara
Treść zadania
Szyfr Cezara zastępuje każdą literę literą położoną k miejsc dalej w alfabecie. Alfabet jest „zawinięty”: po z następuje znowu a. Przy k = 3 litera a przechodzi w d, x w a, a Z w C.
Wczytaj przesunięcie k oraz tekst i wypisz zaszyfrowany tekst:
- przesuwaj tylko litery alfabetu łacińskiego
A–Zia–z, zachowując ich wielkość (wielka litera pozostaje wielką, mała — małą), - pozostałe znaki (spacje, cyfry, interpunkcję, polskie litery takie jak
ączyŻ) przepisz bez zmian.
Przesunięcie może być ujemne (przesunięcie w lewo, np. przy k = -1 litera a przechodzi w z) lub większe niż 26.
Dane wejściowe
- 1. linia: liczba całkowita
k - 2. linia: tekst (może zawierać spacje)
Dane wyjściowe
Jedna linia: zaszyfrowany tekst.
Uwagi
ord(znak)zwraca kod znaku, achr(kod)— znak o danym kodzie, np.ord("a")to97, achr(100)to"d".- Numer małej litery w alfabecie (od 0) to
ord(znak) - ord("a"). Nowy numer to(numer + k) % 26— w Pythonie wynik%dla dodatniego dzielnika jest zawsze z przedziału 0–25, także dla ujemnegok. Z powrotem na literę:chr(nowy_numer + ord("a")). Wielkie litery obsłuż tak samo, zord("A"). - To, czy znak jest małą literą łacińską, sprawdzisz warunkiem
"a" <= znak <= "z".
Przykłady
3 Ala ma kota!
Dod pd nrwd!
-1 Zebra
Ydaqz
Potrzebujesz teorii?
Zasady obowiązujące w rozdziale 11
Zadania w tym rozdziale ćwiczą podstawowe operacje na napisach: indeksowanie, wycinanie, zamianę znaków, dzielenie zdania na słowa i składanie napisów z części.
Konwencje wspólne:
- Każde zadanie jest osobnym programem: czyta standardowe wejście i wypisuje wynik na standardowe wyjście.
- Program nie wypisuje komunikatów typu „Podaj napis:”.
- Napis lub zdanie wczytuj jako całą linię — może zawierać spacje.
- Słowo to fragment zdania oddzielony od innych spacjami. Znaki interpunkcyjne (np.
.,!?;:-()") stojące na początku lub końcu fragmentu nie należą do słowa (kota.→kota), a fragment złożony wyłącznie z interpunkcji (np. samotny myślnik-) nie jest słowem. W Pythonie słowa uzyskasz tak: podziel zdanie metodąsplit(), z każdego fragmentu usuń interpunkcję metodąstrip(string.punctuation)i pomiń puste wyniki. - Gdy wynikiem jest lista, wypisz ją tak, jak robi to
print(lista)w Pythonie, np.['Ala', 'ma', 'kota']. Pusta lista to[].
Zadanie pochodzi z otwartego zbioru Nauka-Programowania (z rozwiązaniami wzorcowymi). Zgłoś błąd w treści lub testach.
Przywrócono Twój zapisany kod.
Python uruchomi się w przeglądarce przy pierwszym teście.
Kod zapisuje się automatycznie w tej przeglądarce. Tab wstawia wcięcie; aby opuścić edytor klawiaturą, naciśnij Esc, a potem Tab.
Testy
Program dostaje „Wejście” przez input() i musi wypisać „Oczekiwane wyjście”. Liczby porównywane są z tolerancją 0,01, a tekst podany w input("…") nie jest sprawdzany.
Test 1
Nie uruchomiono1 xyz XYZ
yza YZA
Test 2
Nie uruchomiono26 Hello
Hello
Test 3
Nie uruchomiono-3 Dod pd nrwd!
Ala ma kota!
Test 4
Nie uruchomiono29 abc
def
Test 5
Nie uruchomiono13 Zażółć gęślą jaźń.
Mnżółć tęśyą wnźń.
Test 6
Nie uruchomiono-27 Python 3.12
Oxsgnm 3.12