Как объединить два целых числа в строку (Python)? - PullRequest
0 голосов
/ 31 октября 2019

Попытка вычислить контрольную цифру и добавить ее в конец сгенерированной кредитной карты. Поэтому я хочу объединить два целых числа в строку. Проблема в том, что этот кусок кода генерирует СПИСОК чисел, а не само число.

checkDigit = 0
while checksum % 10 != 0:
    checksum += 1
    checkDigit += 1
    cc_number = str(cc_number) + str(checkDigit)
return cc_number

Итак, здесь я пытаюсь вычислить, какое число мне нужно добавить к контрольной сумме, чтобы получить кредиткарта, которая соответствует требованиям алгоритма Luhn. Я ожидаю получить, скажем, число «5», но вместо этого я получаю список из 5 элементов, таких как «123456». И затем он соединяется до конца первого числа ... Почему это? Я хочу получить например: 2222222225 и НЕ 222222222123456

Ответы [ 2 ]

1 голос
/ 31 октября 2019

Unindent cc_number = str(cc_number) + str(checkDigit). Похоже, вы хотите «добавить» str (checkDigit) только в конце цикла, как только вы определили правильный checkDigit. (Я говорю «добавить», потому что строки в Python неизменны.)

0 голосов
/ 31 октября 2019
checkDigit = 0
while checksum % 10 != 0:
    checksum += 1
    checkDigit += 1
return "{}{}".format(cc_number, checkDigit)

Вы не хотите объединять checkDigit внутри цикла while. Я поместил его в оператор return, используя форматирование строки.

...