function imei(){
$nu = "3514512";
$num = rand(1111111,9999999);
$s = ''.$nu.''.$num.'';
// Add a zero check digit
$s = $s . '0';
$sum = 0;
// Find the last character
$i = strlen($s);
$odd_length = $i % 2;
// Iterate all digits backwards
while ($i-- > 0) {
// Add the current digit
$sum+=$s[$i];
// If the digit is even, add it again. Adjust for digits 10+ by subtracting 9.
($odd_length == ($i % 2)) ? ($s[$i] > 4) ? ($sum+=($s[$i] - 9)) : ($sum+=$s[$i]) : false;
}
$ime = (10 - ($sum % 10)) % 10;
$imei = ''.$nu.''.$num.''.$ime.'';
return $imei;
}
Мне нужно преобразовать эту функцию в Python, я много пробовал, но всегда терпел неудачу со многими ошибками.
Я придумал это:
def imei():
nu = "8613750"
num = random.randrange(1111111,9999999)
s = '' + nu + '' + num + ''
s = s + '0'
sum = 0
i = len(s)
odd_length = i % 2
while i > 0:
sum += s[i]
if (odd_length == (i % 2)): elif (s[i] > 4): elif (sum += (s[i] - 9)): (sum += s[i]) else false
i -= 1
ime = (10 - (sum % 10)) % 10
imei = '' + nu + '' + num + '' + ime + ''
return imei
ОШИБКА:
Файл "functions.py", строка 30 if (odd_length == (i% 2)): elif (s [i]> 4): elif (sum + = (s [i]] - 9)): (sum + = s [i]) иначе false
РЕДАКТИРОВАНИЕ ПОСЛЕ ПРЕДЛОЖЕНИЯ:
def imei():
nu = '8613750'
num = str(random.randrange(1111111,9999999))
s = '' + nu + '' + num + ''
s = s + '0'
sum = 0
i = len(s) - 1
odd_length = i % 2
while i > 0:
sum += s[i]
if odd_length == i % 2:
if s[i] > 4:
sum += s[i] - 9
else:
sum += s[i]
i -= 1
ime = (10 - (sum % 10)) % 10
imei = '' + str(nu) + '' + str(num) + '' + str(ime) + ''
return imei
print (imei ()) ^