如何在 python 中打乱变量的字母
How to scramble the letters of a variable in python
我正在努力让你输入一个单词,然后输入一个密码,然后它输出带有乱序字母的单词,然后是一个单独的程序来解码它。我曾尝试使用 Import Random 但它没有用。我在网上找了大约一个小时,但仍然没有找到任何东西。这是我目前的代码。
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"
这是一个基本的答案。有一个编码函数传回 "key"(在我的代码中称为 seed
)供解码器读取。这利用了两件事:python 中的洗牌函数,以及 python 中的随机数生成器实际上是伪随机的——它们实际上具有可重复的行为。
另外,感谢 Hugh 在 this post 中的贡献,我在撰写答案时经常使用它。
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)
如果有什么不明白的地方,请随时提出任何问题。
我正在努力让你输入一个单词,然后输入一个密码,然后它输出带有乱序字母的单词,然后是一个单独的程序来解码它。我曾尝试使用 Import Random 但它没有用。我在网上找了大约一个小时,但仍然没有找到任何东西。这是我目前的代码。
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"
这是一个基本的答案。有一个编码函数传回 "key"(在我的代码中称为 seed
)供解码器读取。这利用了两件事:python 中的洗牌函数,以及 python 中的随机数生成器实际上是伪随机的——它们实际上具有可重复的行为。
另外,感谢 Hugh 在 this post 中的贡献,我在撰写答案时经常使用它。
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)
如果有什么不明白的地方,请随时提出任何问题。