Below is a section of code which is part of a functional decryption and encryption program.
while checkvar < maxvar: # is set to < as maxvar is 1 to high for the index of var #output.append("%02d" % number) i =ord(var[checkvar]) - 64 # Gets postional value of i i = ("%02d" % i) if (checkvar + 1) < maxvar: j =ord(var[(checkvar + 1)]) - 64 # Gets postional value of i j = ("%02d" % j) i = str(i) + str(j) #'Adds' the string i and j to create a new i li.append(int(i)) checkvar = checkvar + 2 print li As you can see the two variables i and j are first treated as string to add a 0 in front of any single digit numbers (as string). These variables then are combined to make a four digit number (still as a string). Later in the program the number created are used in a pow() function, as ints remove any leading zeros.
My question: Is it possible to force python to keep the leading zero for ints? I have and continued to search online.
Edit
To help people I have included the encryption part of the program. This is where the problem lies. The variables created in the above code are passed through a pow() function. As this can't handle strings I have to convert the variables to ints where the leading zero is lost.
#a = li[] b=int(17)#pulic = e c=int(2773)#=n lenli=int(len(li)) enchecker = int(0) #encrpted list enlist = [] while enchecker < lenli: en = pow(li[enchecker],b,c)#encrpyt the message can only handle int enlist.append(int(en)) enchecker = enchecker + 1 print enlist
i = "%02d" %i, which is the right thing to do here… why does that not work for you?