【问题标题】:python - take a string and dictionary and return an encrypted version of the stringpython - 获取字符串和字典并返回字符串的加密版本
【发布时间】:2014-12-09 10:40:09
【问题描述】:

用字典加密字符串,使其返回 kjyyp

def encrypt(s,d)
    d = { 'a' : 'm', 'b' : 'd', 'c' : 'l', 'd' : 'x', 'e' : 'j', 
          'f' : 't', 'g' : 'u', 'h' : 'k', 'i' : 'z', 'j' : 'd', 
          'k' : 'o', 'l' : 'y', 'm' : 'i', 'n' : 'v', 'o' : 'p', 
          'p' : 'q', 'q' : 'f', 'r' : 'c', 's' : 'r', 't' : 'b', 
          'u' : 'j', 'v' : 'w', 'w' : 'n', 'x' : 'h', 'y' : 's', 'z' : 'a' }
    # ?

print encrypt('hello',d)

这是我目前所拥有的

def encrypt(s,d):
    d = { 'a' : 'm', 'b' : 'd', 'c' : 'l', 'd' : 'x', 'e' : 'j', 
          'f' : 't', 'g' : 'u', 'h' : 'k', 'i' : 'z', 'j' : 'd', 
          'k' : 'o', 'l' : 'y', 'm' : 'i', 'n' : 'v', 'o' : 'p', 
          'p' : 'q', 'q' : 'f', 'r' : 'c', 's' : 'r', 't' : 'b', 
          'u' : 'j', 'v' : 'w', 'w' : 'n', 'x' : 'h', 'y' : 's', 'z' : 'a' }
    for i in d:
       return s
print encrypt('Hello',d)

【问题讨论】:

    标签: python string encryption dictionary


    【解决方案1】:

    字典是键值对 d['a'] = m 所以只需遍历单词中的字母并替换

    word = "" 
    for letter in s.lower(): 
        word += d[letter]
    return word 
    

    或者——

     return "".join([ d[letter] for letter in s.lower() ])
    

    编辑

    word ="" 
    for letter in s: 
        word += d[letter] if letter in d else "?"
    return word 
    

    【讨论】:

    • 现在如果你要打印 ecrypt('Hello'd) 大写它应该返回 ?kyyp.........def encrypt(s,d): word = '' for i in s.lower(): if i in d[i]: word += d[i] return ''.join([ d[i] for i in s.lower() ]) else: d = { 'a':'m','b':'d','c':'l','d':'x','e':'j','f':'t','g ':'u','h':'k','i':'z','j':'d','k':'o','l':'y','m': 'i','n':'v','o':'p','p':'q','q':'f','r':'c','s':'r ','t':'b','u':'j','v':'w','w':'n','x':'h','y':'s', 'z' : 'a' } 打印加密('hello',d)
    • 我在 if 语句中有它并且正在尝试追加(“?”)
    猜你喜欢
    • 1970-01-01
    • 2020-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-26
    • 1970-01-01
    • 2021-10-23
    • 1970-01-01
    相关资源
    最近更新 更多