Size: a a a

testing_in_python

2020 July 16

ТЭ

Тачами Экстович... in testing_in_python
Taya
у кого-нибудь есть скрипт генератора московского кода плательщика (ЕПД) и ОМС. Или может библиотека, которая их генерирует?
Есть но только на джаве( А это питон чат тут такое нельзя
источник

M

Merg in testing_in_python
а что он из себя представляет? random.randint не годится что ли? в примере у них просто число десятизначное
источник

А

Алексей in testing_in_python
Тачами Экстович
Есть но только на джаве( А это питон чат тут такое нельзя
return subprocess.Popen("java -jar blahblahblah", shell=self.shell)
источник

S

Sergei in testing_in_python
Merg
а что он из себя представляет? random.randint не годится что ли? в примере у них просто число десятизначное
Может там энтерпрайз-рандом, а такое только на джаве :)
источник

T

Taya in testing_in_python
есть проверка на контрольную сумму для последнего знака, если речь об этом.

Вычисляется сумма произведений первых 9 цифр ЕПД с числами-факторами:

1. Вычисляется сумма произведений первых 9 цифр ЕПД с числами-факторами:
S = X1*5 + X2*8 + X3*4 + X4*2 + X5*1 + X6*6 + X7*3 + X8*7 + X9*9

2. Остаток от деления суммы на 11 делится на 10:
Y = (S%11)%10

3. Остаток от деления на 10 должен совпасть с последней цифрой ЕПД.
источник

ИС

Игорь Середа... in testing_in_python
Кажется, у тебя уже готов алгоритм, чтобы всё написать. Полдела сделано, так сказать.
источник

M

Merg in testing_in_python
я бы сказал треть, это ж только проверить, сгенерить несколько сложнее
источник

ИС

Игорь Середа... in testing_in_python
А я думал, что подготовка алгоритма это 90%, а остальное — написание кода. Но немного округлил.
источник

S

Sergei in testing_in_python
Можно сделать однострочную функцию на питоне) заняло бы меньше слов и времени чем в чате спрашивать)
источник

GG

Gregory Gruzdov in testing_in_python
Игорь Середа
А я думал, что подготовка алгоритма это 90%, а остальное — написание кода. Но немного округлил.
когда умеешь кодить :D
источник

S

Sergei in testing_in_python
А если нет то пишешь в чат) чтоб накодили за тебя
источник

T

Taya in testing_in_python
вот накодила епд (функция - алгоритм Луна)
def luhn_residue(digits):
   return sum(sum(divmod(int(d)*(1 + i%2), 10))
                for i, d in enumerate(digits[::-1])) % 10

part = ''.join(str(random.randrange(0, 9)) for _ in range(10 - 1))
res = luhn_residue('{}{}'.format(part, 0))
epd = '{}{}'.format(part, -res % 10)
источник

S

Sergei in testing_in_python
источник

S

Sergei in testing_in_python
При таком форматировании кода верится сразу на слово :)
источник

IS

Idi Suda in testing_in_python
Taya
вот накодила епд (функция - алгоритм Луна)
def luhn_residue(digits):
   return sum(sum(divmod(int(d)*(1 + i%2), 10))
                for i, d in enumerate(digits[::-1])) % 10

part = ''.join(str(random.randrange(0, 9)) for _ in range(10 - 1))
res = luhn_residue('{}{}'.format(part, 0))
epd = '{}{}'.format(part, -res % 10)
охуеть, нечитаемо вообще
источник

T

Taya in testing_in_python
специально для вас

#алгоритмЛуна https://planetcalc.ru/2464/
def luhn_residue(digits):
   return sum(sum(divmod(int(d)*(1 + i%2), 10))
                for i, d in enumerate(digits[::-1])) % 10

#генерацияОМС
def oms():
   part = ''.join(str(random.randrange(0, 9)) for _ in range(16 - 1))
   res = luhn_residue('{}{}'.format(part, 0))
   return '{}{}'.format(part, -res % 10)
источник

IS

Idi Suda in testing_in_python
Да я не про форматирование лол
источник

IS

Idi Suda in testing_in_python
Я про эту дичь
sum(sum(divmod(int(d)*(1 + i%2), 10))
                for i, d in enumerate(digits[::-1])) % 10
источник

T

Taya in testing_in_python
ну нашла кое-что на гитхабе
источник

T

Taya in testing_in_python
зато все работает
источник