【问题标题】:code printing "n" instead of "if". I don't know why this is happening代码打印“n”而不是“if”。我不知道为什么会这样
【发布时间】:2021-02-18 17:32:57
【问题描述】:

(我的问题)当我在这个程序中输入“ad”时,它会输出“n”。我想在字母表中将每个字符向前移动 5 个字符(“ad”将变为“fi”),然后将结果反转(“fi”将变为“if”)。

print("This program is meant to allow users to securely store text information through the use of different forms of security measures.")




IA=input("Enter the information you would like stored:")
#creating/opening a text file and inserting/storing the user input
a=open("user_input","wt")
a.write(IA)
a=open("user_input","rt")
print(a.read())
a.close()


print("Enter the different ways you would like the information entered. It is recommended you use more than just 1 of these methods for security")
SFA=input("Would you like the information to be stored using encryption?(Answer in 'yes' or 'no'):")

#creating a list
thislist = ["SFA","SFB","SFC","SFD","SFE"]
if SFA:"yes"
RT=IA




RT=RT.replace("f","0").replace("a",chr(ord("a")+5)).replace("f","1").replace("0","f")
RT=RT.replace("g","2").replace("b",chr(ord("b")+5)).replace("g","3").replace("2","g")
RT=RT.replace("h","4").replace("c",chr(ord("c")+5)).replace("h","5").replace("4","h")
RT=RT.replace("i","6").replace("d",chr(ord("d")+5))
RT=RT.replace("i","7").replace("6","i").replace("j","8").replace("e",chr(ord("e")+5))
RT=RT.replace("j","9").replace("8","j").replace("k","10").replace("f",chr(ord("f")+5))
RT=RT.replace("k","11").replace("l","12").replace("g",chr(ord("g")+5)).replace("10","k").replace("3","g")
RT=RT.replace("l","13").replace("m","14").replace("h",chr(ord("h")+5)).replace("5","h").replace("12","l")
RT=RT.replace("m","15").replace("n","16").replace("14","m").replace("i",chr(ord("i")+5))
RT=RT.replace("n","17").replace("16","n").replace("o","18").replace("j",chr(ord("j")+5))
RT=RT.replace("o","19").replace("18","o").replace("p","20").replace("k",chr(ord("k")+5)).replace("11","k")
RT=RT.replace("p","21").replace("20","p").replace("q","22").replace("l",chr(ord("l")+5)).replace("13","l")
RT=RT.replace("q","23").replace("22","q").replace("r","24").replace("m",chr(ord("m")+5)).replace("15","m")
RT=RT.replace("r","25").replace("24","r").replace("s","26").replace("n",chr(ord("n")+5)).replace("17","n").replace("7","i")
RT=RT.replace("s","27").replace("26","s").replace("t","28").replace("o",chr(ord("o")+5)).replace("19","o").replace("9","j")
RT=RT.replace("t","29").replace("28","t").replace("u","30").replace("p",chr(ord("p")+5)).replace("21","p")
RT=RT.replace("u","31").replace("30","u").replace("v","32").replace("q",chr(ord("q")+5)).replace("23","q")
RT=RT.replace("v","33").replace("32","v").replace("w","34").replace("r",chr(ord("r")+5)).replace("25","r")
RT=RT.replace("w","35").replace("34","w").replace("x","36").replace("s",chr(ord("s")+5)).replace("27","s")
RT=RT.replace("x","37").replace("36","x").replace("y","38").replace("t",chr(ord("t")+5)).replace("29","t")
RT=RT.replace("y","39").replace("38","y").replace("z","40").replace("u",chr(ord("u")+5)).replace("31","u")
RT=RT.replace("z","41").replace("40","z").replace("a","42").replace("v",chr(ord("v")-21)).replace("33","v")
RT=RT.replace("a","43").replace("42","a").replace("b","42").replace("w",chr(ord("w")-21)).replace("35","w").replace("43","a")
RT=RT.replace("b","45").replace("44","b").replace("c","44").replace("x",chr(ord("x")-21)).replace("37","x").replace("45","b")
RT=RT.replace("c","47").replace("46","c").replace("d","46").replace("y",chr(ord("y")-21)).replace("39","y").replace("47","c")
RT=RT.replace("d","49").replace("48","d").replace("e","44").replace("z",chr(ord("z")-21)).replace("41","z").replace("49","d").replace("1","f")
rtback = RT[::-1]
print(rtback)

【问题讨论】:

  • 这是一种过于复杂的编码方法,搁置一边,究竟是什么问题?

标签: python string replace


【解决方案1】:

问题是因为你不知道什么时候是 1 和 7 或什么时候是 17。你必须拆分你的字母并单独操作它们。

【讨论】:

  • 嘿,感谢您的回复,您认为我可以为此使用不同的字符吗,例如使用“[”表示 17?
  • 我认为你仍然会遇到问题,比如如果你有 2122 我相信它会替换 21 和 22 之间的 12 为“l”,但我不太确定。单独操作字母是避免此类问题的最安全方法。
  • 谢谢,我将代码更改为使用随机符号而不是数字,例如“Ç”代表 7,使用“€”代表 17。经过多次测试,现在效果很好!
猜你喜欢
  • 1970-01-01
  • 2021-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-09-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多