Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Creative category for CheckSum by ivan.zhmaev
def checkio(data):
return [x := sum([(ord(i) - 48) * 2 // 10 + (ord(i) - 48) * 2 % 10 for i in ''.join(c for c in data if c.isalnum())[::-2]]) + sum([ord(i) - 48 for i in ''.join(c for c in data if c.isalnum())[-2::-2]]), "0" if x == 10 else str(10 - x % 10)][::-1]
#These "asserts" using only for self-checking and not necessary for auto-testing
if __name__ == '__main__':
assert (checkio("799 273 9871") == ["3", 67]), "First Test"
assert (checkio("139-MT") == ["8", 52]), "Second Test"
assert (checkio("123") == ["0", 10]), "Test for zero"
assert (checkio("999_999") == ["6", 54]), "Third Test"
assert (checkio("+61 820 9231 55") == ["3", 37]), "Fourth Test"
assert (checkio("VQ/WEWF/NY/8U") == ["9", 201]), "Fifth Test"
print("OK, done!")
March 12, 2021