Kodowanie znaków, przez przesunięcie code-pointu Unicode

0

Witam, mam problem z zadaniem z informatyki i proszę o pomoc.

Zadanie:

do funkcji encrypt() przez parametr message przekazano pewną wiadomość. Zmodyfikuj funkcję tak, aby zwracała wiadomość zaszyfrowaną w następujący sposób: każdy znak wiadomości powinien zostać zastąpiony przez znak o numerze pozycji w tabeli Unicode dwukrotnie większym niż numer pozycji znaku oryginalnego.

Przykład:

wejście: "python"
wyjście: "àòèÐÞÜ"

(oprócz odpowiedzi poprosiłbym też o wytłumaczenie)
Dziekuję.

5

Forum tak nie działa, nie dostarcza gotowców, wykaż się inicjatywą, podaj jakis kod, gdzie szukałeś rozwiązania, etc...

4

Masz funkcję ord, która zamienia kod Unicode znaku i chr, która konwertuje na odwrót.

>>> ord('p')
112
>>> chr(112)
'p'
48

Poświęciłeś chociaż 10 sekund, żeby wyszukać coś samemu w google? Z ciekawości sprawdziłem i odpowiedź masz w pierwszym wyniku.

1
''.join([chr(ord(a) * 2) for a in "python"])

[chr(ord(a) * 2) for a in "python"] to coś to list comprehension https://docs.python.org/3/tutorial/datastructures.html#list-comprehensions czyli przelatuje przez każdy znak w słowie "python" i wykonuje na nim operację chr(ord(a) * 2). To tworzy listę znaków

['à', 'ò', 'è', 'Ð', 'Þ', 'Ü']

a za pomocą ''.join łączymy tę listę i tworzymy string
https://realpython.com/python-string-split-concatenate-join/#concatenating-and-joining-strings

0
LukeJL napisał(a):
''.join([chr(ord(a) * 2) for a in "python"])

[chr(ord(a) * 2) for a in "python"] to coś to list comprehension https://docs.python.org/3/tutorial/datastructures.html#list-comprehensions czyli przelatuje przez każdy znak w słowie "python" i wykonuje na nim operację chr(ord(a) * 2). To tworzy listę znaków

['à', 'ò', 'è', 'Ð', 'Þ', 'Ü']

a za pomocą ''.join łączymy tę listę i tworzymy string
https://realpython.com/python-string-split-concatenate-join/#concatenating-and-joining-strings

a jak zrobić żeby nie wyświetlało się: 'x', ...
i bylo samo: x

1 użytkowników online, w tym zalogowanych: 0, gości: 1