All the Same

题目

Caesar Cipher (encryptor)

思路

获取每个字符的ascii值,溢出了就加减26

我的代码

def to_encrypt(text, delta):
    #只有小写字母和空格字符串无法修改,转成list
    text_list = list(text)
    index = 0
    char_value = 0
    while index < len(text_list):
        if text_list[index] == ' ':
            index += 1
            continue
        else:
            char_value = ord(text_list[index]) + delta
            if char_value > ord('z'):
                char_value -= 26
            elif char_value < ord('a'):
                char_value += 26

            text_list[index] = chr(char_value)
            index += 1

    text = ''.join(text_list)
    return text

if __name__ == '__main__':
    print("Example:")
    print(to_encrypt('abc', 10))

    #These "asserts" using only for self-checking and not necessary for auto-testing
    assert to_encrypt("a b c", 3) == "d e f"
    assert to_encrypt("a b c", -3) == "x y z"
    assert to_encrypt("simple text", 16) == "iycfbu junj"
    assert to_encrypt("important text", 10) == "swzybdkxd dohd"
    assert to_encrypt("state secret", -13) == "fgngr frperg"
    print("Coding complete? Click 'Check' to earn cool rewards!")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值