Питон-куны, объясните пожалуйста что делает данная конструкция в питон:hex_decode_str = val_to_hex(decode_str)hex_decode_str = "{2:{0}<{1}s}".format(0, 28, hex_decode_str)"{2:{0}<{1}s}" - этот блок не понятен
Блок форматированного вывода. Но тут похоже проёбан один аргумент, так-как в формат три значение. {0} = 0, {1} = 28 и т.д. Могу ошибаться, с питоном на Вы.
Если ты читаешь это — значит тебе повезло. Если ты захочешь — твоя жизнь может наполниться счастьем и любовью. Итак, всё, что тебе нужно — это скопировать этот текст и запостить его в трёх соседних тредах. Если ты это сделаешь, в ближайшие 24 часа исполнится твоё самое заветное желание, сбудется твоя мечта, или просто произойдёт что-то очень хорошее, чего тебе давно не хватало. Действуй! Потому что если ты не сделаешь этого, в твоей жизни начнётся полоса неудач и разочарований. Это действительно так. Желаю тебе сделать правильный выбор.
>>160003193Голова, дай денег!
>>160003193НАХУЙ ПОШЕЛ!
>>160002804 (OP)В кавычках в питоне строковые переменные, а .format соответственно форматирует их. Значит по идее то, что тебе не понятно - это вообще одна строка, из которой форматированием достаются определенные значения и записываются в переменную.питон знаю на базовом уровне только, поэтому скорее всего несу хуйню, но все же.
>>160002804 (OP)Питон блядь соснул и java - богов.
>>160002804 (OP)Эта конструкция работает?
>>160002804 (OP)https://pyformat.info/
>>160005497Да работает, уже разобрался опытным путем определил, что забивает строку до определенной длины(28) нолями в конце строки.
>>160002804 (OP)>hex_decode_strразве не из 16ричной переводит в 10ю?
>>160006519, нет вот работающий кусок кода, на котором я проводил опытыdef skzi_to_hex(skzi): decode_str = string_to_iso8859(skzi) hex_decode_str = val_to_hex(decode_str) hex_decode_str = "{2:{0}<{1}s}".format(0, 32, hex_decode_str) hex_decode_str = "{2:{0}>{1}s}".format(0, 50, hex_decode_str) return u"0019{}".format(hex_decode_str)def string_to_iso8859(string): try: res = string.encode("iso-8859-5") except UnicodeEncodeError: err_chars = [u'\xab', u'\xbb'] new_string = reduce(lambda res, x: res.replace(x, '"'), err_chars, string) res = string_to_iso8859(new_string) return resdef val_to_hex(string): return string.encode('hex').upper()print skzi_to_hex('999-1234567')
>>160002804 (OP)>"{2:{0}<{1}s}".format(0, 28, hex_decode_str)2 - взять второй параметр, считая с 0, то есть hex_decode_str: - начало флагов дополнительного форматирования, если бы там было одно число, это была бы просто длинна строчки-результата, но там есть знак <, это значит, что если hex_decode_str будет короче заданной длины, пустые места будут заполнены символом перед знаком <, это могли бы быть просто числа, но там называются перый и второй аргумкнты format, то есть 0 и 28 - значит, строчка длинной 28, пустое место заполнять нулями, hex_decode_str поместить в правую часть результирующей строки, s - значит воспринимать hex_decode_str как строчку
>>160002804 (OP)>"{2:{0}<{1}s}".format(0, 28, hex_decode_str)Читай как"{2:0<28}".format(0, 28, hex_decode_str)Я хз, че это значит
>>160006856>правую левую
>>160002804 (OP)>>160005794Здесь хорошо написано
>>160006856Спасибо! Очень доступно объяснил!/thread
>>160002804 (OP)Ебет твою маманю