【发布时间】:2022-11-27 18:47:45
【问题描述】:
我正在尝试为包含 16 个数字的字符串创建一个循环,想法是将所有成对数字乘以 *2,但是在这样做时,我得到一个字符串错误。我尝试了几种方法但没有成功。
cardNumber = input("Enter a 16-digit card number:")
cardNumber = int(cardNumber.replace(" ",""))
#cardNumber = str(cardNumber)
print(cardNumber)
i = 0
for i in range(0, 16, 2):
cardNumber[i] *= 2
print(cardNumber)
你能帮我理解这个简单的问题吗?我不明白为什么不允许它。
谢谢您的帮助
【问题讨论】:
-
请分享您的输入、您得到的错误以及预期的输出
-
输入:1111 1111 1111 1111 / 我预计:2121212121212121 感谢您的帮助。
-
因为你将
cardNumber转换为一个整数,正如它所说,你不能索引整数 -
没有办法说“给我 1234 的第 3 位数字”,或者至少不能使用一般索引。你可以要求“1234”的第三个字符(作为一个字符串,但它不再是一个字符串)
-
如果我转换为字符串,它会显示 TypeError: 'str' does not support item assignment on line 11 in main.py,为什么?