我正在尝试为我的父亲编写一个程序,以便他可以轻松地在工作中更改密码。他必须更改密码列表,以使该模式类似于将“ abcde123”更改为“ bcdef234”,等等。
我大部分时间都在想如何编码:
code = input("Enter code")
code = code.replace("z", "a")
code = code.replace("y", "z")
code = code.replace("x", "y")
code = code.replace("w", "x")
code = code.replace("v", "w")
code = code.replace("u", "v")
code = code.replace("t", "u")
code = code.replace("s", "t")
code = code.replace("r", "s")
code = code.replace("q", "r")
code = code.replace("p", "q")
code = code.replace("o", "p")
code = code.replace("n", "o")
code = code.replace("m", "n")
code = code.replace("l", "m")
code = code.replace("k", "l")
code = code.replace("j", "k")
code = code.replace("i", "j")
code = code.replace("h", "i")
code = code.replace("g", "h")
code = code.replace("f", "g")
code = code.replace("e", "f")
code = code.replace("d", "e")
code = code.replace("c", "d")
code = code.replace("b", "c")
code = code.replace("a", "b")
print code
在第一行中表示将任何“ z”更改为“ a”。在倒数第二行中,它表示将任何“ a”更改为“ b”。尝试运行此代码时,键入“ z”时,它将自动转到“ b”。有谁知道我该如何解决?
编辑:是的,我也意识到这是因为我添加了最后一行代码,将上一行更改为b。
答案 0 :(得分:1)
您正在对新数据进行替换!这是一个示例,其中我们遍历给定的字符并替换一次,以防止您描述的问题:
code = input("Enter code")
key = {'z': 'a',
'y': 'z',
'x': 'y',
'w': 'x',
'v': 'w',
'u': 'v',
't': 'u',
's': 't',
'r': 's',
'q': 'r',
'p': 'q',
'o': 'p',
'n': 'o',
'm': 'n',
'l': 'm',
'k': 'l',
'j': 'k',
'i': 'j',
'h': 'i',
'g': 'h',
'f': 'g',
'e': 'f',
'd': 'e',
'c': 'd',
'b': 'c',
'a': 'b'
}
new = list()
for c in list(code):
new.append(key[c])
print(''.join(new))
编辑:
更仔细地阅读示例,似乎您只想将字母旋转一个位置-不需要任何键!现在,我们可以轻松地对此进行修改,以支持数字,特殊字符……任何您想要的!
from string import ascii_letters
code = input("Enter code")
charset = ascii_letters
new = list()
for c in list(code):
i = charset.find(c)
new.append(charset[i - 1])
print(''.join(new))
答案 1 :(得分:1)
这很简单,只需一行即可完成:
first_name = input('first name only: ')
if len(first_name) >= 5:
if first_name[-1] == 'a':
print('you won $1000!!')
else:
print('you did not win $1000')
else:
print('you did not win $1000')
这会将每个字符的ascii值增加1。如果字符为“ z”,则将其设置为“ a”。
new = [chr(ord(char) + 1) if char != 'z' else 'a' for char in code]
函数获取字符的ascii值
ord()
函数从ascii值返回相应的字符