Почему tkinter "root.mainloop ()" не повторяет мой код? - PullRequest
0 голосов
/ 08 ноября 2019

Я делаю проект для секретных сообщений. Я пытаюсь заставить код повторяться после шифрования сообщения. Это код, который я пробовал.

from tkinter import Tk, messagebox

print('To decrypt do -(number you used to encryt)')

root = Tk()

alphabet = 'abcdefghijklmnopqrstuvwxyz'
newMessage = ''

message = input('Please enter a message: ')

key = input('Enter a key (-26-26): ')
key = int(key)

for character in message:
  if character in alphabet:
    position = alphabet.find(character)
    newPosition = (position + key) % 26
    newCharacter = alphabet[newPosition]
    newMessage += newCharacter
  else:
    newMessage += character

print('Your new message is: ', newMessage)

root.mainloop()

Я пытался переместить root = Tk(), но это не сработало. Другое дело, что я не хочу повторения print('To decrypt do -(number you used to encryt)')

Если кто-нибудь знает, почему он не зацикливается, дайте мне знать.

Ответы [ 2 ]

2 голосов
/ 08 ноября 2019

Tkinter - это модуль для создания приложений с графическим интерфейсом в Python, он не имеет ничего общего с тем, что вы пытаетесь сделать.

Чтобы код повторялся, вам нужно использовать , а loop или для loop.

В этом случае цикл while является лучшим выбором:

alphabet = 'abcdefghijklmnopqrstuvwxyz'
message = ''

while True:
    newMessage = ''

    print('To decrypt do -(number you used to encryt)')

    message = input('Please enter a message: ')

    key = input('Enter a key (-26-26): ')
    key = int(key)

    for character in message:
      if character in alphabet:
        position = alphabet.find(character)
        newPosition = (position + key) % 26
        newCharacter = alphabet[newPosition]
        newMessage += newCharacter
      else:
        newMessage += character

    print('Your new message is: ', newMessage)

while True означает продолжение навсегда. Вы обычно хотели бы иметь способ выйти из цикла. Например, используйте while message != "-1", чтобы выйти из цикла, когда пользователь введет -1

0 голосов
/ 08 ноября 2019

Вы собираетесь использовать цикл while. root.mainloop запускает графическую программу, она не делает то, что вы пытаетесь здесь.

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