当数字的乘积大于 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
让我们看看您的代码在做什么。
- 您从输入字符串中每隔一个字符切分一次,因此
'1230909'
变为 '1399'
。
- 您将其转换为单个
int
、1399
。
- 您将该数字乘以
2
,得到 2798
。我向你保证计算机的计算正确。
看来您所期望的是每个数字都单独加倍。为此,您需要转换每个数字,将其加倍,然后将它们组合回去。 Python 对此有很好的设施,我建议在 join
调用中使用生成器表达式。
#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
让我们看看您的代码在做什么。
- 您从输入字符串中每隔一个字符切分一次,因此
'1230909'
变为'1399'
。 - 您将其转换为单个
int
、1399
。 - 您将该数字乘以
2
,得到2798
。我向你保证计算机的计算正确。
看来您所期望的是每个数字都单独加倍。为此,您需要转换每个数字,将其加倍,然后将它们组合回去。 Python 对此有很好的设施,我建议在 join
调用中使用生成器表达式。