2016-09-23 7 views
-2

Приведенный ниже код отлично работает, однако сообщение печатается на отдельные строки после его зашифрования. Например, если я тип: а со сдвигом 1, она шифрует его, но печатает его обратно, как:Caesar Cipher Code Печать на отдельных строках

b 
c 
d 

И я не понимаю, почему. Я хочу, чтобы напечатать как:

bcd 

Вот код:

print("Welcome to the Code-Breaking/Making Software") 
print("This program uses something called a Caesar Cipher.") 

Message = (input("Please enter the message you wish to Encrypt >> ")) 
Shift = int(input("Please enter the shift for your message >> ")) 

for x in Message: 
    OrdMessage = ord(x) 
    ShiftedMessage = OrdMessage + Shift 
    NewMessage = chr(ShiftedMessage) 
    NewMessageList = list(NewMessage) 
    print("".join(NewMessageList)) 
+1

вы печатаете каждый символ в пределах вашего для цикла. – Alex

+0

Как бы я это исправить? Добавляя печать за пределы цикла for? –

ответ

1

вопросы отступов и вы не должны создавать новый список из NewMessage каждый раз

print("Welcome to the Code-Breaking/Making Software") 
print("This program uses something called a Caesar Cipher.") 

Message = (input("Please enter the message you wish to Encrypt >> ")) 
Shift = int(input("Please enter the shift for your message >> ")) 

NewMessageList = [] 
for x in Message: 
    OrdMessage = ord(x) 
    ShiftedMessage = OrdMessage + Shift 
    NewMessage = chr(ShiftedMessage) 
    NewMessageList.append(NewMessage) 
print("".join(NewMessageList)) 
+0

Это работает спасибо! Можете ли вы объяснить, какие команды вы использовали, поскольку я не знаком. (College Student) –

+0

Только команда используется здесь 'append'. Что он делает, добавляет элемент в список. Подробнее в документации: https://docs.python.org/3/tutorial/datastructures.html#more-on-lists –

+0

Что относительно NewMessageList = [] Разве это просто присваивает переменной ничего? –

0

вы должны изменить следующая часть;

print("".join(NewMessageList), end="") 
0

Что происходит была в том, что для каждого charachter он был запущен цикл и печать ответ, теперь я собрал все зашифрованное письмо и избить их, как в конце концов и распечатать его.

это при первой инициализации пустого списка с NewMessage = [], а затем для каждого письма, которое мы получаем зашифрованного добавляет к этому пустому списку с помощью .append() и в конце печати всего ''.join(NewMessage)

print("Welcome to the Code-Breaking/Making Software") 
print("This program uses something called a Caesar Cipher.") 

Message = (input("Please enter the message you wish to Encrypt >> ")) 
Shift = int(input("Please enter the shift for your message >> ")) 

NewMessage = [] 
for x in Message: 
    OrdMessage = ord(x) 
    ShiftedMessage = OrdMessage + Shift 
    NewMessage.append(chr(ShiftedMessage)) 
print(''.join(NewMessage)) 
+0

Что делает NewMessage = [] do и. добавить? –

+0

он сначала инициализирует пустой список с помощью 'NewMessage = []', а затем для каждой буквы, которую мы получим зашифрованной, он добавляет в этот пустой список с помощью '.append()' и в конце печатает все под символом '. '.join (NewMessage) ' – harshil9968