Примери

Пример 1. Пресловљавање ћириличног текста у латинични (питон).

azbuka_srb = ['А','Б','В','Г','Д','Ђ','Е','Ж','З','И','Ј','К',Л','Љ','М','Н','Њ',
'О','П','Р','С','Т','Ћ','У','Ф','Х','Ц','Ч','Џ','Ш','а','б','в','г','д','ђ','е','ж','з','и',
'ј','к','л','љ','м','н','њ','о','п','р','с','т','ћ','у','ф','х','ц','ч','џ','ш']

azbuka_cro = ['A','B','V','G','D','Đ','E','Ž','Z','I','J','K','L','Lj','M','N','Nj',
'O','P','R','S','T','Ć','U','F','H','C','Č','Dž','Š','a','b','v','g','d','đ','e','ž','z','i',
'j','k','l','lj','m','n','nj','o','p','r','s','t','ć','u','f','h','c','č','dž','š']

txt = 'Његош, Ђорђе и Љиља журили су на ћевапчиће.'
for i,x in enumerate(azbuka_srb):

txt = txt.replace(azbuka_srb[i],azbuka_cro[i])
continue

print(txt)
return

Излазни текст је: „Njegoš, Đorđe i Ljilja žurili su na ćevapčiće.“ ߛ

Уместо унапред датог txt ставите

txt = input('Унеси ћирилични текст:')

да би корисник могао унети свој текст. Ставите def cirlat(): испред свега, лево бар једном празнином, да дефинишете дате наредбе као питонову функцију cirlat(). Њеним позивом, она ће функцијом input() тражити унос ћириличног теста txt, пресловити га у латинични и резултат штампати наредбом print.

У програмском језику php питонову варијаблу txt пишемо $txt, дакле са знаком долара испред њеног назива.

Пример 2. Пренос податка из php у python.

Из php програма (небитног назива) наредбама

<?php
$txt = "Ovo je tekst.";
echo shell_exec("python test.py \"$txt\"");
?>

позивамо python програм test.py који гласи

import sys
x=sys.argv
print(x)

Излазни текст је: „['test.py', 'Ovo je tekst.']“ ߛ

Питонов модул sys пружа функције и променљиве које се користе за манипулисање различитим деловима питоновог окружења током извршавања наредби.

sys.argv враћа листу аргумената наредбе прослеђене скрипти, где је sys.argv[0] назив скрипте, а sys.argv[1] послата варијабла.

Пример 3. Укуцавање текста и пренос садржаја у python.

У овом HTML, првом програму, укуцате текст.

Текст:

Унешени текст се проследи на читање и могућу обраду другом програму (naziv2.php). Други га прослеђује трећем (naziv3.py), на евентуалну дораду и штампање. ߛ

Кодови су овде крајње једноставни да би се лакше дограђивали. Први програм преузима текст "name" од корисника и шаље га уобичајеном HTML формом:

<form action="naziv2.php" method="post">
<input type="text" name="name" ><input type="submit">

Други програм, на уобичајени PHP начин, преузима текст из прве форме и шаље га трећем:

$txt = $_POST["name"];
echo shell_exec("naziv3.py \"$txt\"");

Коначно, трећи програм на питонов начин преузима текст и штампа га:

import sys
x=sys.argv
print(x)
sys.exit

На унешени текст Ovo je poruka. коначни одговор је

['piton38_32.py', 'Ovo je poruka.']

што је типична питонова двочлана листа која нам сада каже да је тачан назив трећег, коначног програма piton38_32.py, а послата порука била је Ovo je poruka.

Међутим, ако послати текст садржи нека „чудна“ слова, која су ипак дефинисана UTF-8 кодом, на крају ће се појавити њихов одговарајући хексадецимални запис.

На пример, у првом програму унешена реч „Чађ“ из трећег излази кодирана као '\xd0\xa7\xd0\xb0\xd1\x92'. У питону унесите

b'\xd0\xa7\xd0\xb0\xd1\x92'.decode('utf-8')

добићете 'Чађ'. У питону унесите

u'Чађ'.encode('utf-8')

добићете назад b'\xd0\xa7\xd0\xb0\xd1\x92'.

Други пример, у првом програму унешена реч „Đorđe“ из трећег излази кодирана као '\xc4\x90or\xc4\x91e'. У питону унесите

u'Đorđe'.encode('utf-8')

добићете назад b'\xc4\x90or\xc4\x91e'.

Дакле, у примеру 3, послати текст Đorđe питон штампа делимично кодирано '\xc4\x90or\xc4\x91e', јер слово које није у ASCII коду он уникодира. Тим мешањем добијамо додатно компликовање обраде.

Пример 4. Обрада кода у питону.

Делимични уникод текста Đorđe је '\xc4\x90or\xc4\x91e', па дефинишемо варијабле питоновим наредбама редом:

v1 = '\xc4\x90or\xc4\x91e'
v2 = list(v1)
v3 = []
for i,x in enumerate(v2): v3.append(ord(v2[i]))

Добили смо листу v3 = [196, 144, 111, 114, 196, 145, 101] чији су елементи декадних кодови слова текста Đorđe. Даље настављамо у питону:

v4 = bytes(v3)
v5 = v4.decode('utf-8')

Добијено v5 је Đorđe. ߛ

Иначе, низ ових наредби је моја приватна функција utftxt(x). Она рецимо аргумент x = '\xc4\x90or\xc4\x91e' пресликава у Đorđe. Због начина читања варијабли, као текста или броја и интерпретације броја у базама, питон прави проблеме са овом конверзијом и настаје потреба за овом функцијом. Питон неке наредбе различито извршава непосредно и из функције.

Пример 5. Пренос непромењеног текста.

Текст:

У овом HTML програму yкуцани текст прослеђује се PHP програму који га чита и текст преноси трећем PY програму на евентуалну обраду и штампање. ߛ

На овај пример се може надовезати неки уредник „чудних“ азбука. Ради комплетности са горњим „ћирилизатором“ (пример 1), који преводи ћирилицу у латиницу, наводим и симетричан питонов програм за обрнуто превођење, са латинице на ћирилицу. Он је latcir().

Пример 6. Пресловљавање латиничног текста у ћирилични (питон).

slova_srb=['Љ','Њ','Џ','љ','њ','џ','А','Б','В','Г','Д','Ђ','Е','Ж','З', 'И','Ј',
'К','Л','М','Н','О','П','Р','С','Т','Ћ','У','Ф','Х','Ц','Ч','Ш','а','б','в','г','д',
'ђ','е','ж','з','и','ј','к','л','м','н','о','п','р','с','т','ћ','у','ф','х','ц','ч','ш']

slova_cro=['Lj','Nj','Dž','lj','nj','dž','A','B','V','B','D','Đ', 'E','Ž','Z', 'I','J',
'K','L','M','N','O','P','R','S','T','Ć','U','F','H','C','Č','Š','a','b','v','g','d',
'đ','e','ž','z','i','j','k','l','m','n','o','p','r','s','t','ć','u','f','h','c','č','š']

txt = 'Njegoš, Đorđe i Ljilja žurili su na ćevapčiće.'
for i,x in enumerate(slova_cro):

txt = srb.replace(slova_cro[i],slova_srb[i])
continue

print(txt)
return

Излазни текст је: „Његош, Ђорђе и Љиља журили су на ћевапчиће.“ ߛ

Обратите пажњу на другачији редослед слова у овом примеру (6) од онога у претходном (1). Овај низ слова може се користити у горњем примеру, али горњи у доњем не.

Примере 1 и 6 навео сам просто као демонстрацију једноставности и у том смислу моћи Python-а у односу на JavaScript, чији код за исти посао (ћирилизатор) је и на овом сајту, а који је десетинама пута дужи.

Напомињем да скоро ништа, или много тога из ових примера није било могуће наћи на интернету или по форумима компјутераша у време до почетка јуна 2021. када сам правио ову страницу.

About Python

Versions of “Python 3.8”, the interpreter programing kind of language, appeared from October 14, 2020 to May 3, 2021. It is an object-oriented, high-level programming language with dynamic semantics.

Python is a programming language that lets you work more quickly and integrate your systems more effectively. – it says on their site: python ⋙

The other languages

PHP (Personal Home Page) is a popular general-purpose scripting language that is especially suited to web development. – says PHP ⋙

HTML (Hypertext Markup Language) is a standardized system for tagging text files to achieve font, colour, graphic, and hyperlink effects on World Wide Web pages. Free course at HTML Tutorial ⋙

CSS (Cascading Style Sheets) is a style sheet language used for describing the presentation of a document written in a markup language such as HTML. Free templates at CSS ⋙

Decoding

In Example 3 (Пример 3), after the transfer you can get something like
'\xd0\xa7\xd0\xb0\xd1\x92', which is the hexadecimal code of the Cyrillic text Чађ (Soot). If ASCII cannot be displayed, hex is displayed. The UTF-8 (Unicode Transformation Format) characters you can see on UTF-8 ⋙

Python's b'\xd0\xa7'.decode('utf-8') gives the Cyrillic letter 'Ч'. Conversely, the python's u'Ч'.encode('utf-8') returns starting b'\xd0\xa7'.