Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中对变量的字母进行置乱_Python_Variables_Decode_Encode_Scramble - Fatal编程技术网

如何在python中对变量的字母进行置乱

如何在python中对变量的字母进行置乱,python,variables,decode,encode,scramble,Python,Variables,Decode,Encode,Scramble,我试着让你输入一个单词,然后输入一个密码,然后它输出这个单词,字母被打乱,然后一个单独的程序对它进行解码。我曾尝试使用“导入随机”,但没有成功。我已经在网上找了大约一个小时了,仍然没有找到任何东西。这是我到目前为止的代码 ss = raw_input ("Enter Plain Text Here: ") password = raw_input ("Enter the Password here: ") RealPassword = "Test Password" if password

我试着让你输入一个单词,然后输入一个密码,然后它输出这个单词,字母被打乱,然后一个单独的程序对它进行解码。我曾尝试使用“导入随机”,但没有成功。我已经在网上找了大约一个小时了,仍然没有找到任何东西。这是我到目前为止的代码

ss = raw_input ("Enter Plain Text Here:  ")
password = raw_input ("Enter the Password here:  ")
RealPassword = "Test Password"
if password == RealPassword:
    print "Password Accepted!"
    Var1 = (ss[1])
    Var2 = (ss[2])
    Var3 = (ss[3])
    Var4 = (ss[4])
    Var5 = (ss[5])
    Var6 = (ss[6])
    Var7 = (ss[7])
    Var8 = (ss[8])
    Var9 = (ss[9])
    Var10 = (ss[10])
    Var11 = (ss[11])
    Var12 = (ss[12])
    Var13 = (ss[13])
    Var14 = (ss[14])
    Var15 = (ss[15])
    Var16 = (ss[16])
    Var17 = (ss[17])
    print Var1 + Var2 + Var3 + Var4 + Var5 + Var6 + Var7 + Var8 + Var9 
else:
    print "Wrong"

这里有一个基本的答案。有一个编码函数,它传回一个“键”(在我的代码中称为
seed
),让解码器读取。这利用了两个优点:python中的shuffle函数,以及python中的随机数生成器实际上是伪随机的,它们实际上具有可重复的行为

还有,要归功于休,我在这篇文章中用了很多东西来构思我的答案

import random

def encoder(word):
    seed = random.randint(1,100)
    random.seed(seed)
    l = list(word)
    random.shuffle(l)
    scrambled_word = ''.join(l)
    return seed, scrambled_word

def decoder(seed, scrambled_word):
    random.seed(seed)
    order = list(range(len(scrambled_word)))
    random.shuffle(order)

    original_word = [0]*len(scrambled_word)
    for index,original_index in enumerate(order):
        original_word[original_index] = scrambled_word[index]
    print(''.join(original_word))


original_word = "hello"

seed, scrambled_word = encoder(original_word)
print(scrambled_word)
decoder(seed, scrambled_word)

如果有什么不合理的地方,请随时提问。

您必须拥有编码功能的反向工程版本才能对其进行解码。除此之外,你应该在这里发布之前尝试创建一个编码和解码的函数,这样我们就可以纠正你的错误,而不是为你创建代码。嘿,OP。为了澄清一下,你正在寻找一个程序以某种方式编码一个单词,另一个程序从编码的单词中解码单词,对吗?你想要的编码/解码有多复杂?@PeterDolan我只是想要简单的编码,但每次都必须不同。例如,纯文本是:Hello。第一次输出:elHlo。下一次输出时:oHell。等等..嗯,解码器如何知道编码器使用的编码方法?某种数字也会被传回吗?如果有必要,请告诉我sense@PeterDolan我知道你的意思。它可能会输出加扰后的文本,然后输出一个“密钥”供解码器使用?这听起来有点牵强,但也许是可能的?我如何将原始的“hello”变成原始的“ipnut”?假设您使用的是python2,
original\u word=raw\u输入(“在此处输入纯文本:”)
。如果您使用的是python3,
original\u word=input(“在此处输入纯文本”)