制作循环首先忽略某些东西

时间:2014-04-14 21:47:33

标签: python loops for-loop

我正在为我的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默认值

1 个答案:

答案 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...