下面是一段代码,是功能性解密和加密程序的一部分。
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()
函数,如int
删除所有前导零。
我的问题:是否可以强制 python 保留前导零int
是?我已经并继续在网上搜索。
Edit
为了帮助人们,我在程序中包含了加密部分。这就是问题所在。上面代码中创建的变量通过pow()
功能。由于这无法处理字符串,我必须将变量转换为int
s 丢失前导零。
#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
尽管上面关于 1、01 和 001 的评论都是正确的,但它们都与int
,它在时间建模或连续电影制作中保持前导零非常有帮助。我经常这样做是为了确保影片剪辑的顺序正确。最简单的方法是使用zfill()
以确保str
该数字的版本至少具有您告诉它的字符数,并且通过用零填充字符串“数字”的左侧来实现。
>>> x = int(1)
>>> NewStringVariable = str(x).zfill(3)
>>> print NewStringVariable
001
>>> NewStringVariable = str(x).zfill(5)
>>> print NewStringVariable
00001
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)