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!")

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM