原文链接

    1.遍历字符串

    for single_char in src_str:
    print(single_char)

    Python-简单加密 - 图1
    2.index函数与简单加密
    index函数:检索字符串中的字符是否在给定字符串中
    简单加密:

    1. alphabet_src='abcdefghijklmnopqrstuvwxyz'
    2. alphabet_tar='defghijklmnopqrstuvwxyzabc'
    3. src_str='hello world!'
    4. for single_char in src_str:
    5. if single_char in alphabet_src:
    6. index=alphabet_src.index(single_char)
    7. print(alphabet_tar[index])

    一定要注意缩进和定义的字符串名和冒号位置
    invalid syntax错误:缩进和冒号错误
    运行结果:alphabet_tar是密钥
    Python-简单加密 - 图2
    以上的结果是以字符逐行输出,下面通过把字符累加到字符串上,输出加密后的一整个字符串

    1. alphabet_src='abcdefghijklmnopqrstuvwxyz'
    2. alphabet_tar='defghijklmnopqrstuvwxyzabc'
    3. src_str='hello world!'
    4. result=''
    5. for single_char in src_str:
    6. if single_char in alphabet_src:
    7. index=alphabet_src.index(single_char)
    8. result=result+alphabet_tar[index] #转码
    9. else:
    10. result=result+single_char#空字符不转码,直接加上去
    11. print(result)

    Python-简单加密 - 图3
    解密:

    1. decrypted_str=''
    2. for single_char in result:
    3. if single_char in alphabet_tar:
    4. index=alphabet_tar.index(single_char)
    5. decrypted_str=decrypted_str+alphabet_src[index] #转码
    6. else:
    7. decrypted_str=decrypted_str+single_char#空字符不转码,直接加上去
    8. print(decrypted_str)#解密

    Python-简单加密 - 图4
    3.函数的书写方法(传参别忘了标记参数)

    1. def decryptIt(src_str): #别忘了括号里的参数
    2. decrypted_str=''
    3. for single_char in src_str:
    4. if single_char in alphabet_tar:
    5. index=alphabet_tar.index(single_char)
    6. decrypted_str=decrypted_str+alphabet_src[index] #转码
    7. else:
    8. decrypted_str=decrypted_str+single_char#空字符不转码,直接加上去
    9. return decrypted_str#解密
    10. print(decryptIt('zruog!'))

    对齐问题很严重也很愁人啊~
    Python-简单加密 - 图5
    4.如何减少歧义
    global XX#使用的是全局变量
    5.assert 检验代码(函数是否正确)

    1. assert('world!'== decryptIt('zruog!'))

    6.代码函数说明文档的用法

    1. def encryptIt(src_str:str)->str:
    2. '''用于对字符串简单加密
    3. 输入参数:src_str:原始文本内容
    4. 返回结果:加密文本
    5. '''
    6. help(encryptIt)

    Python-简单加密 - 图6
    7.直接计算索引位置的加密

    1. alphabet_src='abcdefghijklmnopqrstuvwxyz'
    2. def encryptIt(src_str:str)->str:
    3. '''用于对字符串简单加密
    4. 输入参数:src_str:原始文本内容
    5. 返回结果:加密文本
    6. '''
    7. global alphabet_src
    8. encrypted_str=''
    9. for single_char in src_str:
    10. if single_char in alphabet_src:
    11. old_index=alphabet_src.index(single_char)
    12. new_index=(old_index+3)%26#处理越界
    13. encrypted_str=encrypted_str+alphabet_src[new_index] #转码
    14. else:
    15. encrypted_str=encrypted_str+single_char#空字符不转码,直接加上去
    16. return encrypted_str
    17. print(encryptIt('hello world!'))

    Python-简单加密 - 图7
    小心字符越界的问题!这里用了取余处理越界