I keep getting the IndexError: string index out of range, and am wondering what I'm doing wrong with the code.
inFile=open('pa7.cards','r')
cardnum=inFile.readline().strip()
def main():
while cardnum!='99999':
Step1(cardnum)
def CheckLen(num):
if len(num)>=13 and len(num)<=16:
return True
else:
return False
def Step1(num):
total=0
for i in range(len(num)-2,0,-2):
if eval(num[i]*2)>=10:
i=eval(num[i])*2
i=str(i)
i=eval(i[0])+eval(i[1])
total+=i
else:
total+=i
return total
def Step2(num):
total=0
for i in range(len(num)-1,0,-2):
total+=i
return total
def Step3(num):
total=Step1(num)+Step2(num)
if total%10==0:
return True
else:
return False
##def DetermineType(num):
main()
This is what the input file looks like:
4388576018402626
4388576018410707
37271983
99999
This is the error:
Traceback (most recent call last):
File "C:/Users/Andrew/Desktop/pa7.py", line 47, in <module>
main()
File "C:/Users/Andrew/Desktop/pa7.py", line 18, in main
Step1(cardnum)
File "C:/Users/Andrew/Desktop/pa7.py", line 30, in Step1
i=eval(i[0])+eval(i[1])
IndexError: string index out of range
int()instead ofeval()?int()instead ofeval(). However, never useeval(). About that error,i = int(i[0])+int(i[1])I thinki's length is 1 so you can't do something likei[1].str(i)will generate string length one which then causes the error ini[1]