Простой вход - выходной преобразователь - PullRequest
0 голосов
/ 27 сентября 2018

В настоящее время я пытаюсь сделать простую программу, которая будет принимать вводимые пользователем данные и выдавать одно и то же, но с разными буквами / символами на основе простой таблицы преобразования.

Пример. Допустим, следующие преобразования являются:С левой стороны у вас есть пользовательский ввод, а справа у вас есть вывод программ.

A=AB
B=BC
C=CD
D=DE
etc...

Я хочу, чтобы программа взяла предложение или фразу и выплюнула преобразованную версию:

Пример: это то, что я хочу в качестве конечного продукта.

Input = Hello there
Output = HIEFLMLMOP TUHIEFRSEF

У меня мало опыта работы с Python, я должен признать.Прошло чуть более 4 лет с тех пор, как я учился на уроках программирования в старшей школе, и мы выучили более старую версию до 3.0, поэтому некоторые вещи кажутся новыми / другими.Любая помощь очень ценится!

Редактировать:

import sys

'a' == "AB"
'b' == "BC"
'c' == "CD"
'd' == "DE"
'e' == "EF"
'f' == "FG"
'g' == "GH"
'h' == "HI"
'i' == "IJ"
'j' == "JK"
'k' == "KL"
'l' == "LM"
'm' == "MN"
'n' == "NO"
'o' == "OP"
'p' == "PQ"
'q' == "QR"
'r' == "RS"
's' == "ST"
't' == "TU"
'u' == "UV"
'v' == "VW"
'w' == "WX"
'x' == "XY"
'y' == "YZ"
'z' == "ZA"

usrinpt = input('Enter what you would like to encode:');
print("Generated Product:");
if input(usrinpt) == a:
    print ("AB")
def main():
    input("Press enter and exit")

Редактировать 2:

Попробовал то, что предложил @wwii, но просто не знаю, как япусть программа выплюнет преобразование.

import sys

translate = {"A": 'AB', "B": 'BC', "C": 2, "D": 3, "E": 4, "F": 5, "G": 6, "H": 7, "I": 8, "J": 9, "K": 10, "L": 11, "M": 12, "N": 13, "O": 14, "P": 15, "Q": 16, "R": 17, "S": 18, "T": 19, "U": 20, "V": 21, "W": 22, "X": 23, "Y": 24, "Z": 25, " ": 26}

conversion = input("What would you like cypher?: ").upper()
print("Here is the output: "conversion)

Редактировать 3: Найден код, который, кажется, действительно близок к тому, что я ищу.Просто возникают проблемы с тем, чтобы прочитать мои переводы.

key = 0

translate = {'a':'AB' , 'b':'BC'}
#going to add more to the translate list once I get those letters working

def wub():
    def choice():
        choice = input("Do you wish to Encrypt of Decrypt?")
        choice = choice.lower()
        if choice == "e" or "encrypt":
            return choice
        elif choice == "d" or "decrypt":
            return choice
        else:
            print("Invalid response, please try again.")
            choice()

    def message():
        user = input("Enter your message: ")
        return user

    def waffle(choice, message, key):
        translated = ""
        if choice == "e" or "encrypt":
            for character in message:
                num = ord(character)
                num += key
                translated += chr(num)

                derek = open('Encrypted.txt', 'w')
                derek.write(translated)
            derek.close()
            return translated
        else:
            for character in message:
                num = ord(character)
                num -= key
                translated += chr(num)
            return translated

    choice = choice() #Runs function for encrypt/decrypt selection. Saves choice made.
    message = message() #Run function for user to enter message. Saves message.
    final = waffle(choice, message, key) #Runs function to translate message, using the choice, message and key variables)
    print("\n Operation complete!")
    print(final)

wub(

)

1 Ответ

0 голосов
/ 27 сентября 2018

Попробуйте это или подобное в функции, вы можете избежать вывода str все вместе.Если вы хотите обрабатывать строчные буквы, проверьте целочисленное значение chr (), а если выше 96, вычтите 32:

def convert(inputString):
    outputString = ""
    for letter in inputString:
        if ord(letter) >= 65 and ord(letter) < 86:
            outputString += letter + chr((ord(letter) + 1))
        elif ord(letter) >= 97 and ord(letter) < 122:
            outputString += chr(ord(letter) - 32) + chr(ord(letter) - 31)
        elif letter == 'z' or letter == 'Z':
            outputString += "ZA"
        else:
            outputString += letter
    return outputString

wordToConvert = "ABC abc"

print(convert( wordToConvert))

wordToConvert = "Hello there"

print(convert( wordToConvert))

Вывод:

ABBCCD ABBCCD
HIEFLMLMOP TUHIEFRSEF

https://docs.python.org/2/library/functions.html#chr

https://www.quora.com/What-is-difference-in-the-ASCII-values-of-uppercase-and-lowercase-letters

...