当数字的乘积大于 10 时,为什么我得到不同的输出?

Why am I getting a different output when the multiplication of the digit is above 10?

#card number
card = input('Number: ')

j = int(card[::2]) # this will jump character by 1
# multiplying each other number by 2
j *= 2
print(j)

所以每当我 运行 这个代码并输入例如1230404

输出是正确的,即 2688

但是当我输入例如 1230909 时,输出是 2798,我预计是 261818

让我们看看您的代码在做什么。

  1. 您从输入字符串中每隔一个字符切分一次,因此 '1230909' 变为 '1399'
  2. 您将其转换为单个 int1399
  3. 您将该数字乘以 2,得到 2798。我向你保证计算机的计算正确。

看来您所期望的是每个数字都单独加倍。为此,您需要转换每个数字,将其加倍,然后将它们组合回去。 Python 对此有很好的设施,我建议在 join 调用中使用生成器表达式。