CMU Coding Bootcamp
1def addUpcBarcodeCheckDigit(barcode: str) -> str:
2 """Adds the check digit to a UPC barcode."""
3 evenChecks = [int(digit) for i, digit in enumerate(barcode) if i % 2 == 0]
4 oddChecks = [int(digit) for i, digit in enumerate(barcode) if i % 2 != 0]
5 evenTotal = sum(int(digit) for digit in evenChecks) * 3
6 oddTotal = sum(int(digit) for digit in oddChecks)
7 checkDigit = 10 - (evenTotal + oddTotal) % 10
8 return barcode + (str(checkDigit) if checkDigit != 10 else "0")
9
10
11print("Testing addUpcBarcodeCheckDigit()...", end="")
12assert addUpcBarcodeCheckDigit("03600029145") == "036000291452"
13assert addUpcBarcodeCheckDigit("11111111111") == "111111111117"
14assert addUpcBarcodeCheckDigit("23232323232") == "232323232329"
15assert addUpcBarcodeCheckDigit("12345678900") == "123456789005"
16assert addUpcBarcodeCheckDigit("00000000000") == "000000000000"
17print("Passed!")