FilmProgramowanie w Pythonie. Szyfr przestawieniowy

W filmie przedstawiono, jak zaprogramować szyfrowanie parkanem.

Ćwiczenie 0

Aby stworzyć program, którego wynikiem będzie dany napis z pominiętymi literami, np. a, trzeba przeanalizować napis znak po znaku za pomocą pętli for. Do zmiennej będącej wynikiem, której wartość początkowa jest pustym napisem, należy dodać tylko znaki niebędące literą a. Przeanalizuj zapis, a następnie zmodyfikuj kod tak, aby otrzymać napis z pominiętymi spacjami.

def pomin(napis): pom = "" for zn in napis: if zn != "a": pom = pom + zn return pom print(pomin("agama brodata")) print(pomin("papuga")) print(pomin("delfin butelkonosy")) print(pomin("salamandra czerwona z licznymi plamkami"))
Wynikiem funkcji pomin("lampart") jest lampart
testResult = pomin("lampart")=="lampart"
lampart
pomin("lampart")
Wynikiem funkcji pomin(" g e p a r d ") jest gepard
testResult = pomin(" g e p a r d ")=="gepard"
gepard
pomin(" g e p a r d ")
Wynikiem funkcji pomin("za skro niec ") jest zaskroniec
testResult = pomin("za skro niec ")=="zaskroniec"
zaskroniec
pomin("za skro niec ")
Rozwiąż ćwiczenie

Ćwiczenie 1Przestawianie parami

Zdefiniuj funkcję szyfr(s), której parametrem jest tekst jawny składający się z małych liter alfabetu łacińskiego i pojedynczych spacji, a wy­nikiem – szyfrogram utworzony przez przestawienie kolejnych par znaków, przy czym spacja traktowana jest jak każda inna litera i również podlega zamianie. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji szyfr("kotwica") jest okwtcia.
  • Wynikiem funkcji szyfr("szyfrowanie jest trudne") jest zsfyorawin eejtst urnde.
# zdefiniuj funkcję def szyfr(s): pass # testy
Wynikiem funkcji szyfr(" pierwsza") jest p eiwrzsa
testResult = szyfr(" pierwsza")=="p eiwrzsa"
p eiwrzsa
szyfr(" pierwsza")
Wynikiem funkcji szyfr("ostatnia ") jest soatntai
testResult = szyfr("ostatnia ")=="soatntai "
soatntai
szyfr("ostatnia ")
Wynikiem funkcji szyfr("w") jest w
testResult = szyfr("w")=="w"
w
szyfr("w")
Rozwiąż ćwiczenie

Ćwiczenie 2Parkan

Zdefiniuj funkcję parkan(s), której parametrem jest tekst jawny złożony z małych liter alfabetu łacińskiego, a wynikiem – szyfrogram utwo­rzony za pomocą szyfru parkan. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji parkan("fronty") jest fotrny.
  • Wynikiem funkcji parkan("tajne") jest tjean.
# zdefiniuj funkcję def parkan(s): pass # testy
Wynikiem funkcji parkan("abba") jest abba
testResult = parkan("abba")=="abba"
abba
parkan("abba")
Wynikiem funkcji parkan("k") jest k
testResult = parkan("k")=="k"
k
parkan("k")
Wynikiem funkcji parkan("kkllaassaa") jest klasaklasa
testResult = parkan("kkllaassaa")=="klasaklasa"
klasaklasa
parkan("kkllaassaa")
Rozwiąż ćwiczenie

Ćwiczenie 4Czy to jest palindrom

Zdefiniuj funkcję logiczną czy_palindrom(s), której pa­rametrem jest napis zawierający tylko małe litery alfabetu łacińskiego, a wynikiem – wartość logiczna True, gdy napis jest palindromem, lub False, gdy nim nie jest. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji czy_palindrom("aabbaa") jest True.
  • Wynikiem funkcji czy_palindrom("aaxyaa") jest False.
# zdefiniuj funkcję def czy_palindrom(s): pass # testy
Wynikiem funkcji czy_palindrom("p") jest słowo True
testResult = czy_palindrom("p")==True
True
czy_palindrom("p")
Wynikiem funkcji czy_palindrom("prawda") jest słowo False
testResult = czy_palindrom("prawda")==False
False
czy_palindrom("prawda")
Wynikiem funkcji czy_palindrom("abcddcba") jest słowo True
testResult = czy_palindrom("abcddcba")==True
True
czy_palindrom("abcddcba")
Rozwiąż ćwiczenie

Ćwiczenie 6Czy zdanie jest palindromem

Zdefiniuj funkcję logiczną czy_palindrom2(s), której pa­rametrem jest napis zawierający małe litery alfabetu łacińskiego i spacje, a wynikiem wartość logiczna True, gdy napis jest palindromem, lub False, gdy nim nie jest. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji czy_palindrom2("a to kanapa pana kota") jest True.
  • Wynikiem funkcji czy_palindrom2("a to kanapka pana kota") jest False.
def czy_palindrom(s): for i in range(len(s) // 2): if s[i] != s[-i - 1]: return False return True # zdefiniuj funkcję def pomin(s): pass # zdefiniuj funkcję def czy_palindrom2(s): pass # testy
Wynikiem funkcji czy_palindrom2("tolo ma samolot") jest True
testResult = czy_palindrom2("tolo ma samolot")==True
True
czy_palindrom2("tolo ma samolot")
Wynikiem funkcji czy_palindrom2("tolo da samolot") jest False
testResult = czy_palindrom2("tolo da samolot")==False
False
czy_palindrom2("tolo da samolot")
Wynikiem funkcji czy_palindrom2("atak na kata") jest False
testResult = czy_palindrom2("atak na kata")==False
False
czy_palindrom2("atak na kata")
Wynikiem funkcji czy_palindrom2("atak w kata") jest True
testResult = czy_palindrom2("atak w kata")==True
True
czy_palindrom2("atak w kata")
Rozwiąż ćwiczenie

Ćwiczenie dodatkowe 1

Zdefiniuj funkcję zastap(napis), której wynikiem jest napis ze spacjami zastąpionymi przez znak podkreślenia ( _ ). Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji zastap("podgrzybek brunatny") jest podgrzybek_brunatny.
  • Wynikiem funkcji zastap(" rydz mleczaj ") jest _rydz_mleczaj_.
# zdefiniuj funkcję def zastap(napis): pass # testy
Wynikiem funkcji zastap("boro wik") jest boro__wik
testResult = zastap("boro wik")=="boro__wik"
boro__wik
zastap("boro wik")
Wynikiem funkcji zastap(" t r u f l a ") jest _t_r_u_f_l_a_
testResult = zastap(" t r u f l a ")=="_t_r_u_f_l_a_"
_t_r_u_f_l_a_
zastap(" t r u f l a ")
Wynikiem funkcji zastap("rydz i kania") jest rydz_i_kania
testResult = zastap("rydz i kania")=="rydz_i_kania"
rydz_i_kania
zastap("rydz i kania")
Rozwiąż ćwiczenie

Ćwiczenie dodatkowe 2

Napisz funkcję zamien(napis), której parametrem jest napis o parzystej liczbie znaków, a wynikiem ten sam napis z pozamienianymi sąsiednimi znakami (tj. pierwszy z drugim, trzeci z czwartym itd.). Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji zamien("agrest") jest gaerts.
  • Wynikiem funkcji zamien("mandarynka") jest amdnranyak.
# zdefiniuj funkcję def zamien(napis): pass # testy
Wynikiem funkcji zamien("jagoda") jest ajogad
testResult = zamien("jagoda")=="ajogad"
ajogad
zamien("jagoda")
Wynikiem funkcji zamien("nektarynka") jest entkranyak
testResult = zamien("nektarynka")=="entkranyak"
entkranyak
zamien("nektarynka")
Wynikiem funkcji zamien("ananas") jest nanasa
testResult = zamien("ananas")=="nanasa"
nanasa
zamien("ananas")
Rozwiąż ćwiczenie

Ćwiczenie dodatkowe 3

Zdefiniuj funkcję zmiana(napis), której wynikiem jest napis z pozamienianymi literami a na o i odwrotnie: o na a. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji zmiana("brzoskwinia") jest brzaskwinio.
  • Wynikiem funkcji zmiana("morela") jest marelo.
# zdefiniuj funkcję def zmiana(napis): pass # testy
Wynikiem funkcji zmiana("brzoza") jest brzazo
testResult = zmiana("brzoza")=="brzazo"
brzazo
zmiana("brzoza")
Wynikiem funkcji zmiana("topola") jest tapalo
testResult = zmiana("topola")=="tapalo"
tapalo
zmiana("topola")
Wynikiem funkcji zmiana("modrzew i sosna") jest madrzew i sasno
testResult = zmiana("modrzew i sosna")=="madrzew i sasno"
madrzew i sasno
zmiana("modrzew i sosna")
Rozwiąż ćwiczenie

Ćwiczenie dodatkowe 4

Zdefiniuj funkcję cykl(napis), której wynikiem jest napis pozamienianymi samogłoskami a na e, e na i, i na o, o na u, u na y i y na a. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji cykl("czarne jagody") jest czerni jeguda.
  • Wynikiem funkcji cykl("poziomki") jest puzoumko.
# zdefiniuj funkcję def cykl(napis): pass # testy
Wynikiem funkcji cykl("guawa") jest gyewe
testResult = cykl("guawa")=="gyewe"
gyewe
cykl("guawa")
Wynikiem funkcji cykl("jagody goji") jest jeguda gujo
testResult = cykl("jagody goji")=="jeguda gujo"
jeguda gujo
cykl("jagody goji")
Wynikiem funkcji cykl("cytryny") jest catrana
testResult = cykl("cytryny")=="catrana"
catrana
cykl("cytryny")
Rozwiąż ćwiczenie

Ćwiczenie dodatkowe 5

Twój wynik to: /1
  • Jaki będzie efekt działania poniższego kodu w języku Python?
    s = "programowanie"
    print(s[::-2])

Zadanie 1Ukrywanie tekstu

Zdefiniuj funkcję ukryj(s), której parametrem jest napis złożony z małych liter alfabetu łacińskiego, a wynikiem napis z wstawioną co drugą literą wybraną losowo. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji ukryj("zima") jest np. zkitmwau.
  • Wynikiem funkcji ukryj("alamakota") jest np. axldaamaackvostvac.

Wskazówka: do losowania wykorzystaj funkcję randint() z modułu random.

# zdefiniuj funkcję def ukryj(s): pass # testy
Rozwiąż ćwiczenie

Zadanie 2ROT13

Zapoznaj się z informacją na temat szyfru ROT13 na s. 199 podręcznika, a następnie zdefiniuj funkcję rot(s), której parametrem jest napis zawierający wielkie litery alfabetu łacińskiego, a wynikiem napis zakodowany według podanej zasady. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji rot("GRAT") jest TENG.
  • Wynikiem funkcji rot("INFORMACJA") jest VASBEZNPWN.
# zdefiniuj funkcję def rot(s): pass # testy
Wynikiem funkcji rot("NOPQRSTUVWXYZ") jest ABCDEFGHIJKLM
testResult = rot("NOPQRSTUVWXYZ")=="ABCDEFGHIJKLM"
ABCDEFGHIJKLM
rot("NOPQRSTUVWXYZ")
Wynikiem funkcji rot("ADEZAW") jest NQRMNJ
testResult = rot("ADEZAW")=="NQRMNJ"
NQRMNJ
rot("ADEZAW")
Wynikiem funkcji rot("INFORMATYKA") jest VASBEZNGLXN
testResult = rot("INFORMATYKA")=="VASBEZNGLXN"
VASBEZNGLXN
rot("INFORMATYKA")
Rozwiąż ćwiczenie

Zadanie dodatkowe 1

Zdefiniuj funkcję anagram(s), której parametrem jest tekst jawny składający się z małych liter a, b lub c, a wynikiem napis, w którym wszystkie litery tekstu ustawione są w kolejności alfabetycznej. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji anagram("acabbca") jest aaabbcc.
  • Wynikiem funkcji anagram("abccbaaaa") jest aaaaabbcc.
# zdefiniuj funkcję def anagram(s): pass # testy
Wynikiem funkcji anagram("accaccaaaa") jest aaaaaacccc
testResult = anagram("accaccaaaa")=="aaaaaacccc"
aaaaaacccc
anagram("accaccaaaa")
Wynikiem funkcji anagram("bbbbbbbbbbbbb") jest bbbbbbbbbbbbb
testResult = anagram("bbbbbbbbbbbbb")=="bbbbbbbbbbbbb"
bbbbbbbbbbbbb
anagram("bbbbbbbbbbbbb")
Wynikiem funkcji anagram("bbaaaccbaaaba") jest aaaaaaabbbbcc
testResult = anagram("bbaaaccbaaaba")=="aaaaaaabbbbcc"
aaaaaaabbbbcc
anagram("bbaaaccbaaaba")
Rozwiąż ćwiczenie

Pytania quizowePrzetwarzanie napisów

Twój wynik to: /3
  • Jakim znakiem należy zacząć jednowierszowy komentarz?
  • Jakiego polecenia należy użyć, aby dla napisu w = "szyfrant" wypisać 4 ostatnie znaki?
  • Jaki napis zostanie wypisany dla napisu w = "kolumna" w wyniku działania polecenia print(w[0:5])?