Python аналоги PHP решений

Как PHP-шинк со стажем, при изучении Python я использовал такой способ: брал готовые PHP-скрипты и переписывал их на Пайтон. В результате получилась небольшая шпаргалка, которой я и хочу поделиться с вами.

Аналог empty() в Python

Код на PHP:

if (empty($x)) {echo 'переменная пуста';}
if (!empty($x)) {echo 'переменная не пуста';}

Аналог на Python:

if not x:
    print('переменная пуста')

if x:
    print('переменная не пуста')

Сравнение массивов PHP и Python

Массивы в PHP = Списки в Python.

Код на PHP:

$arr = ['Нулевой элемент', 'Первый'];
$arr[] = 'Второй';
$arr[] = 3;

Тоже самое на Питоне:

arr = ['Нулевой элемент', 'Первый']
arr.append('второй')
arr.append(3)
print(arr)

# выводит: ['Нулевой элемент', 'Первый', 'второй', 3]

Ассоциативные массивы в PHP = Словари в Python

Код на PHP:

$arr = array(
    'el1' => 'Первый',
    'el2' => 'Второй'
);
$arr['el3'] = 3;

Тоже самое на Питоне:

arr = {
    'el1': 'Первый',
    'el2': 'Второй'
}
arr['el3'] = 3
print(arr)

# выводит: {'el1': 'Первый', 'el2': 'Второй', 'el3': 3}

Аналоги json_encode() и json_decode() в Python

Одна из распространённых задач - кодирование (шифрование) и декодирование (дешифрование) json. Начнём с кодирования, то бишь с json_encode (кстати, encode - на инглише означает "шифровать"). Для пример превратим ассоциативный массива в json строку. Сначала выполним на PHP:

$my_array = array( 
    "element" => 1,
    "b" => 2,
    "c" => 3
);
var_dump(json_encode($my_array)); // напечатает строку: {"element":1,"b":2,"c":3}

Аналог json_encode в Python:

my_array = {
    "element": 1,
    "b": 2,
    "c": 3
}
array_str_json = json.dumps(my_array)
print(array_str_json) # напечатает строку: {"element": 1, "b": 2, "c": 3}

Теперь займёмся декодированием.

Код на PHP:

$json_str = '{"element":1,"b":2,"c":3}';
var_dump(json_decode($json_str)); // расшифруем как класс
var_dump(json_decode($json_str, true)); // расшифруем как массив

PHP код выше вернёт:

object(stdClass)#1 (3) {
    ["element"] => int(1)
    ["b"] => int(2)
    ["c"] => int(3)
}

array(3) {
    ["element"] => int(1)
    ["b"] => int(2)
    ["c"] => int(3)
}

Тоже самое на Питоне (аналог json_decode):

json_str = '{"element":1,"b":2,"c":3}'
decoded_body = json.loads(json_str)
print(decoded_body)

И ещё полезная картинка на тему того, как Питон преобразует при расшифровке объекты из JSON:

Таблица преобразований объектов JSON в Python

Аналоги PHP библиотек в Python

И на последок пару слов про полезные библиотеки и их аналоги:

Библиотека для парсинга в PHP: phpQuery
Её аналог в Python: BeautifulSoup

Рейтинг: 5

2023-10-24 / / 0 комментариев / Про кодинг и сервер / ,