{
    "version": "https:\/\/jsonfeed.org\/version\/1",
    "title": "Блог Константина Фарактинова: заметки с тегом программирование",
    "_rss_description": "Пишу про всякое. Немного дизайна, немного программирования, а так в основном мысли.",
    "_rss_language": "ru",
    "_itunes_email": "",
    "_itunes_categories_xml": "",
    "_itunes_image": "",
    "_itunes_explicit": "",
    "home_page_url": "http:\/\/faraktinov.ru\/notes\/tags\/programmirovanie\/",
    "feed_url": "http:\/\/faraktinov.ru\/notes\/tags\/programmirovanie\/json\/",
    "icon": "http:\/\/faraktinov.ru\/notes\/user\/userpic@2x.jpg?1706624840",
    "author": {
        "name": "Константин Фарактинов",
        "url": "http:\/\/faraktinov.ru\/notes\/",
        "avatar": "http:\/\/faraktinov.ru\/notes\/user\/userpic@2x.jpg?1706624840"
    },
    "items": [
        {
            "id": "49",
            "url": "http:\/\/faraktinov.ru\/notes\/all\/convert-roman-arabic-numbers-python\/",
            "title": "Перевод римских и арабских чисел в Python",
            "content_html": "<p>Изучаю тут Питон. Решил зафиксировать для истории решение одной задачи с Хекслета.<\/p>\n<p>Во-первых, оно нравится мне больше учительского (потому что рекурсия же). Во-вторых, у испытания самый низкий процент завершений, который я пока видел (хотя сейчас начало второго модуля, так что видел не много). В-третьих, интересно будет вернуться сюда через год и покекать над собой из прошлого. Ну, и, наконец, моё решение может пригодиться кому-то ещё, хотя бы в качестве антипримера.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">NUMERALS = {\r\n    'M': 1000,\r\n    'CM': 900,\r\n    'D': 500,\r\n    'CD': 400,\r\n    'C': 100,\r\n    'XC': 90,\r\n    'L': 50,\r\n    'XL': 40,\r\n    'X': 10,\r\n    'IX': 9,\r\n    'V': 5,\r\n    'IV': 4,\r\n    'I': 1,\r\n}\r\n\r\n\r\ndef descending(pair):\r\n    return -pair[1]\r\n\r\n\r\ndef to_roman(arabic_num):\r\n    roman_num = ''\r\n    for roman, digit in sorted(NUMERALS.items(), key=descending):\r\n        add = arabic_num \/\/ digit\r\n        roman_num += roman * add\r\n        arabic_num = arabic_num % digit\r\n    return roman_num\r\n\r\n\r\ndef get_digit(roman, digit, symbol, arabic):\r\n    if symbol == roman[:len(symbol)]:\r\n        return get_digit(roman[len(symbol):], digit, symbol, arabic + digit)\r\n    return roman, arabic\r\n\r\n\r\ndef to_arabic(roman_num):\r\n    number = roman_num\r\n    arabic_num = 0\r\n\r\n    for symbol, digit in sorted(NUMERALS.items(), key=descending):\r\n        number, arabic_num = get_digit(number, digit, symbol, arabic_num)\r\n    if to_roman(arabic_num) == roman_num:\r\n        return arabic_num\r\n    return False<\/code><\/pre>",
            "date_published": "2023-02-05T12:46:14+00:00",
            "date_modified": "2023-02-05T12:41:57+00:00",
            "_date_published_rfc2822": "Sun, 05 Feb 2023 12:46:14 +0000",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "49",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css"
                ],
                "og_images": []
            }
        }
    ],
    "_e2_version": 3877,
    "_e2_ua_string": "E2 (v3877; Aegea)"
}