Make the program go back to the beginning

Asked

Viewed 288 times

-1

I’m doing a César encryption encryption. I kind of make the program go back to the beginning. Code:

tela=input('Com isso Coloque uma palavra ou frase para ajudar no comprometimentoao meio ambiente')

# Solicitando o texto a ser encriptado ou decriptado:
texto = input('Digite a mensagem a ser encriptada ou decifrada: ')
# Chave a ser utilizada
chave = int(input('Entre com o valor da chave (deslocamento): '))
# Determinar modo de operação (E = encriptar; D = decriptar)
modo = input('Escolha E para encriptar ou D para decriptar o texto: ')
# Conjunto de caracteres válidos no algoritmo
CARACTERES = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
# Variável para armazenar o texto criptografado (ou decifrado)
convertido = ''
# Converter todo o texto em maiúsculas:
texto = texto.upper()
# Código que será executdo em cada caractere do texto:
for caractere in texto:
  if caractere in CARACTERES:
 # Obter o número criptografado ou decriptado do caractere
    num = CARACTERES.find(caractere)
 # Obter o número do caractere
    if modo == 'E':
      num = num + chave
    elif modo == 'D':
      num = num - chave
 # Manipulando a rotação se o valor de num for maior do que o comprimento de CARACTERES ou menor que 0
  if num >= len(CARACTERES):
    num = num - len(CARACTERES)
  elif num < 0:
    num = num + len(CARACTERES)
 # Adicionar (concatenar) o caractere correspondente a num na variável convertido
    convertido = convertido + CARACTERES[num] 
  else:
 # Concatenado o caractere sem efetuar criptografia ou decifragem
    convertido = convertido + caractere
# Mostrar o texto encriptado ou decifrado na tela:
if modo == 'E':
  print('O texto criptografado é ', convertido)
if modo == 'D':
  print('O texto decriptado é ', convertido)

2 answers

3

Use the block while. This repeat block will repeat the code snippet whenever the instruction is true. Soon you can make the code this way:

while True:

    tela=input('Com isso Coloque uma palavra ou frase para ajudar no comprometimentoao meio ambiente')

    # Solicitando o texto a ser encriptado ou decriptado:
    texto = input('Digite a mensagem a ser encriptada ou decifrada: ')

    # Chave a ser utilizada
    chave = int(input('Entre com o valor da chave (deslocamento): '))

    # Determinar modo de operação (E = encriptar; D = decriptar)
    modo = input('Escolha E para encriptar ou D para decriptar o texto: ')

    # Conjunto de caracteres válidos no algoritmo
    CARACTERES = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

    # Variável para armazenar o texto criptografado (ou decifrado)
    convertido = ''

    # Converter todo o texto em maiúsculas:
    texto = texto.upper()

    # Código que será executdo em cada caractere do texto:
    for caractere in texto:
      if caractere in CARACTERES:
     # Obter o número criptografado ou decriptado do caractere
        num = CARACTERES.find(caractere)
     # Obter o número do caractere
        if modo == 'E':
          num = num + chave
        elif modo == 'D':
          num = num - chave
     # Manipulando a rotação se o valor de num for maior do que o comprimento de CARACTERES ou menor que 0
      if num >= len(CARACTERES):
        num = num - len(CARACTERES)
      elif num < 0:
        num = num + len(CARACTERES)
     # Adicionar (concatenar) o caractere correspondente a num na variável convertido
        convertido = convertido + CARACTERES[num] 
      else:
     # Concatenado o caractere sem efetuar criptografia ou decifragem
        convertido = convertido + caractere
    # Mostrar o texto encriptado ou decifrado na tela:
    if modo == 'E':
      print('O texto criptografado é ', convertido)
    if modo == 'D':
      print('O texto decriptado é ', convertido)

2

Is reply is valid, but you will not have the option to exit the program.

Knowing this I implemented a stop option:

opcao=0
while opcao !=1:
  tela=input('Com isso Coloque uma palavra ou frase para ajudar no comprometimentoao meio ambiente')

  # Solicitando o texto a ser encriptado ou decriptado:
  texto = input('Digite a mensagem a ser encriptada ou decifrada: ')
  # Chave a ser utilizada
  chave = int(input('Entre com o valor da chave (deslocamento): '))
  # Determinar modo de operação (E = encriptar; D = decriptar)
  modo = input('Escolha E para encriptar ou D para decriptar o texto: ').upper()
  # Conjunto de caracteres válidos no algoritmo
  CARACTERES = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
  # Variável para armazenar o texto criptografado (ou decifrado)
  convertido = ''
  # Converter todo o texto em maiúsculas:
  texto = texto.upper()
  # Código que será executdo em cada caractere do texto:
  for caractere in texto:
    if caractere in CARACTERES:
  # Obter o número criptografado ou decriptado do caractere
      num = CARACTERES.find(caractere)
  # Obter o número do caractere
      if modo == 'E':
        num = num + chave
      elif modo == 'D':
        num = num - chave
  # Manipulando a rotação se o valor de num for maior do que o comprimento de CARACTERES ou menor que 0
    if num >= len(CARACTERES):
      num = num - len(CARACTERES)
    elif num < 0:
      num = num + len(CARACTERES)
  # Adicionar (concatenar) o caractere correspondente a num na variável convertido
      convertido = convertido + CARACTERES[num] 
    else:
  # Concatenado o caractere sem efetuar criptografia ou decifragem
      convertido = convertido + caractere
  # Mostrar o texto encriptado ou decifrado na tela:
  if modo == 'E':
    print('O texto criptografado é ', convertido)
  if modo == 'D':
    print('O texto decriptado é ', convertido)
  opcao = int(input('>>>> Digite 1 para sair do programa ou 0 para continuar \n'))

See working on repl it.

I took the liberty of making an improvement to your code:

Your input for variable modo was like this:

modo = input('Escolha E para encriptar ou D para decriptar o texto: ')

In turn, note that your if was like this:

if modo == 'E':

With the possibility of generating an error in your code, since the user could insert minuscule letter in the variable modo.

Thus correct your input using the function upper():

modo = input('Escolha E para encriptar ou D para decriptar o texto: ').upper()

Browser other questions tagged

You are not signed in. Login or sign up in order to post.