我正在为我的CS类进行加密分配,在哪里使用逻辑映射来更改ord()和chr()的字符。
对于我的代码我正在使用for循环,我需要它在使用某个命令(logMap)之前运行一次
from logistic import logMap
from genAmpSeed import genAmpSeed
from cipherChr import cipherChr
password=input("Enter password: ")
amp,seed=genAmpSeed(password)
line=input("Enter line to cipher: ")
def logMap(a,x):
ans=(a*x)*(1-x)
return ans
def line2cipher(amp,seed,line):
acc=''
for i in line:
res=logMap(amp,seed)
offset=int(96*res)
acc+= cipherChr(i,offset)
print(acc,res)
所以我需要先运行这个,但第一次使用genAmpSeed(genAmpSeed.py)的默认值,然后再使用logMap默认值
答案 0 :(得分:0)
您可以使用slice忽略字符串的第一个字符。
def line2cipher(amp,seed,line):
acc=''
for i in line[1:]:
res=logMap(amp,seed)
offset=int(96*res)
acc+= cipherChr(i,offset)
print(acc,res)
修改强>
如果你想要更通用的东西,你可以使用一个标志来检查它是否是第一次循环运行:
first = True
for i in range(10):
if first:
first = False
# Do whatever you need to do for the first time
continue
# Do something...