我正在接受一个输入
CC = (input("What is your credit card number?"))
当我从第一个数字开始取每个其他数字的总和时,我使用这个代码(有效):
amex_sum = sum(int(i) for i in CC[::2])
但是,当我尝试取每个其他数字的总和时,从第二个数字开始直到第16个数字,使用以下代码
MC_sum = sum(int(i) for i in CC[1,15,2])
我收到错误:“TypeError:字符串索引必须是整数。”
为什么一次迭代工作而不是另一次?代码本质上不一样吗?
你正在错误地切片,你正在做CC[1,15,2]
但这会创建一个元组(1, 15, 2)
在CC
中被索引这当然不会工作,因为CC是一个字符串并且只接受整数索引。
你想要的是CC[1:15:2]
从第二个索引切换到第16个,步长为2。