求问这个代码错在哪
cardid=input("请输入信用卡号")
#代码开始
x=0
y=0
c=eval(cardid)
for i in range(c):
x=x+c[-1::-2]
z=(c[-2::-2])*2
if z>9:
z=z-9
y=y+z
m=x+y
if m%10 == 0:
print('合法卡号')
if m%10 != 0:
print('非法卡号')
#代码结束
cardid=input("请输入信用卡号")
#代码开始
x=0
y=0
c=eval(cardid)
for i in range(c):
x=x+c[-1::-2]
z=(c[-2::-2])*2
if z>9:
z=z-9
y=y+z
m=x+y
if m%10 == 0:
print('合法卡号')
if m%10 != 0:
print('非法卡号')
#代码结束
你的卡号应该是一个字符串类型的,但是在c=eval(cardid)之后,c就变成了一个非常大的整形数了,在x=x+c[-1::-2],你尝试将c分割,但c是一个int型的无法分割。建议你对cardid进行分割,然后计算的时候再转为int型,像这样int(cardid[-1::-2])