PYTHON3 凯撒密码

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:Virgin Forest
import sys

def encode(char,number):
    number = int(number)
    if number > 26:
        number = number % 26
    en_char = ""

    for i in char:
        if i.isalpha():
            if i.isupper():
                if ord(i) + number > 90:
                    en_char += chr(ord(i) + number - 26)
                else:
                    en_char += chr(ord(i) + number)
            else:
                if ord(i) + number > 122:
                    en_char += chr(ord(i) + number - 26)
                else:
                    en_char += chr(ord(i) + number)
        else:
            en_char += i
    return(en_char)


def decode(char,number):
    number = int(number)
    if number > 26:
        number = number % 26
    de_char = ""

    for i in char:
        if i.isalpha():
            if i.isupper():
                if ord(i) - number < 65:
                    de_char += chr(ord(i) - number + 26)
                else:
                    de_char += chr(ord(i) - number)
            else:
                if ord(i) - number < 97:
                    de_char += chr(ord(i) - number + 26)
                else:
                    de_char += chr(ord(i) - number)
        else:
            de_char += i
    return(de_char)


def decode_no(char,number):
    number = int(number)
    en_char = ""

    for i in char:
         en_char += chr(ord(i) - number)
    return(en_char)



head = '''
=================================
  Hello,My name is Caesar
  I can do the following things
  encode / decode /enumeration
=================================
  what would you want to do ?
'''
print(head,end = "  ")
answer = input()

if (answer == 'encode' or answer == '1'):
    char = input("  char:")
    number = input("  number:")
    print("encode's chars is :",end = " ")
    print(encode(char,number))
    sys.exit()


if (answer == 'decode' or answer == '2'):
    char = input("  char:")
    number = input("  number:")
    print("decode's chars is :",end = " ")
    print(decode(char, number))
    sys.exit()


if (answer == 'enumeration' or answer == '3'):
    reply = input("  only chars?")
    if (reply == 'Y' or reply == 'y' or reply == 'Yes' or reply == 'yes' or reply == 'YES' or reply == '1'):
        char = input("  char:")
        for i in range(26):
            print("  enumeration%s : " % (i+1),end=" ")
            print(decode(char,i))
    if (reply == 'N' or reply == 'n' or reply == 'No' or reply == 'no' or reply == 'NO' or reply == '2'):
        char = input("  char:")
        for i in range(177):
            print("  enumeration%s : " % (i + 1), end=" ")
            print(decode_no(char, i))
    sys.exit()


else:
    print("Invalid chars!")

 

转载于:https://www.cnblogs.com/virgin-forest/p/7827298.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值