Python 3.7.2, end = "" в моем цикле for удаляет весь текст при запуске в консоли? - PullRequest
0 голосов
/ 26 мая 2019

Я создаю эту программу кодирования / декодирования в Python. (3.7.2). Вы вводите строку в программу, она преобразует ее в список, переворачивает список, переключает некоторые элементы, чтобы сделать его более загадочным. Функция декодирования в основном противоположна этому. В моем цикле for, который печатает каждую букву в конце процесса (как для кодера, так и для декодера), он не распечатывает окончательный результат, когда я запускаю файл через консоль (CommandPrompt). Однако он отлично работает в Python IDLE по умолчанию. , Я использовал end = " " в цикле for для удаления ненужных пробелов.

Я попытался сделать переменные равными конечному результату цикла for и распечатать их, но ошибка все равно была.

Вот мой код:

import time, os # imports modules

def main():

    os.system('cls')

    inp=input("Encoder or Decoder: E or D.\n\npython@user$ ") #Asks which  tool they want to use (Encoder/Decoder)

    if inp in ("E", "e"): #Sees if user chooses encoder.
        os.system('cls') # clears the screen.
        encode() #Goes to 'encode' function.

    else: 
        decode() #goes to 'decode' function.


def encode():

    inp=input ("What do you wish to encode? - Must be a sentence\n\npython@user$ ") # Retrievs what the user wants to translate.

    list_of_inp = list(inp) #turns inputted string value into a list where every character is an item.

    reversed_list = (list_of_inp[::-1]) #Reverses the list.
                                                                            #--|
    reversed_list[2], reversed_list[6] = reversed_list[6], reversed_list[2] #  |
    reversed_list[1], reversed_list[9] = reversed_list[9], reversed_list[1] #   ---- Switches values of the list to make it more rnadom.
    reversed_list[7], reversed_list[4] = reversed_list[4], reversed_list[7] #  |
                                                                            #--|

    for item in reversed_list:
        print (item, end = "") #Prints every character in list and removes unwanted spaces.

    os.system('pause') #Press ant key to continue.

    time.sleep(1) #waits one second.

    main()

def decode():


    inp=input ("What do you wish to decode?\n\npython@user$ ") # Retrievs what the user wants to translate.

    list_of_inp = list(inp) #turns inputted string value into a list where every character is an item.

                                                                    #--|                            
    list_of_inp[2], list_of_inp[6] = list_of_inp[6], list_of_inp[2] #  |
    list_of_inp[1], list_of_inp[9] = list_of_inp[9], list_of_inp[1] #   ---- Switches back the items.
    list_of_inp[7], list_of_inp[4] = list_of_inp[4], list_of_inp[7] #  |
                                                                    #--|

    reversed_list = (list_of_inp[::-1]) #Reverses the list to normal.

    for ch in reversed_list:
        print (ch, end = "")#Prints every character in list and removes unwanted spaces.

    os.system('pause') #Press any key to continue.

    time.sleep(1) #Waits 1 second.

    main() #returns to 'main' function.

main() #calls main function to start the program.

Ожидается, что будет напечатан окончательный результат списка, затем «Нажмите любую клавишу для продолжения», затем перейдите к моей основной функции. (главное меню). Однако он просто отображает «Нажмите любую клавишу для продолжения», после нажатия любой клавиши он возвращает вас к основной функции, и вывод присоединяется к началу моего текста в main (). Хотя в начале написано os.system('cls').

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...