问题:如何保留int变量的前导零?

下面是一段代码,它是功能解密和加密程序的一部分。

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

如您所见,两个变量 i 和 j 首先被视为字符串,以在任何单个数字前添加 0(作为字符串)。然后将这些变量组合成一个四位数字(仍为字符串)。稍后在程序中创建的数字用于pow()函数,因为ints 删除了所有前导零。

我的问题:是否可以强制python为ints保留前导零?我已经并继续在网上搜索。

编辑

为了帮助人们,我已经包含了程序的加密部分。这就是问题所在。上面代码中创建的变量是通过一个pow()函数传递的。由于这无法处理字符串,我必须将变量转换为ints ,其中前导零丢失。

#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

解答

前导零的概念是一个显示概念,而不是数字概念。您可以在数字上放置无限数量的前导零而不更改其值。由于它不是数字概念,因此它不与数字一起存储。

将数字转换为字符串时,您必须决定需要多少个零。如果需要,您可以单独保留该号码。

Logo

学AI,认准AI Studio!GPU算力,限时免费领,邀请好友解锁更多惊喜福利 >>>

更多推荐