The program should consider all validations possible. That is, it can not be allowed to access, delete or change a non-existent position from the list

0

How to put a statement that the position in the list is empty and that it is not possible to change or delete the value

import sys
lista = []
resposta = ''
continua = ''
while resposta != 'S':
    print('#### MENU ####')
    print('[L]istar')
    print('[I]nserir')
    print('[A]lterar')
    print('[D]eletar')
    print('[S]air')
    resposta = str(input('selecione uma das opcoes: '))  

    if resposta == 'I':
        numero = int(input('digite o numero: '))
        lista.append(numero)
        print('Valor adicionado com sucesso: ', lista)
        continua = str(input('deseja adicionar outro numero? '))
        while continua != 'nao':
            numero = int(input('digite o numero: '))
            lista.append(numero)
            print('Valor adicionado com sucesso: ', lista)
            continua = str(input('deseja adicionar outro numero? '))

     if resposta == 'A':
            posicao = int(input('digite a posicao: '))
            print(lista[posicao])
            lista[posicao] = int(input('digite o novo numero: '))
            print(lista)
            continua = str(input('deseja modificar outro numero? '))
            while continua != 'nao':
                posicao = int(input('digite a posicao: '))
                print(lista[posicao])
                lista[posicao] = int(input('digite o novo numero: '))
                continua = str(input('deseja modificar outro numero? '))

     if resposta == 'L':
            print('valores da lista: ', lista)

     if resposta == 'D':
         print('digite a posicao do numero que deseja excluir: ')
         posicao = int(input('digite a posicao: '))
         lista.remove(lista[posicao])
         print('valor', posicao, 'deletado com sucesso!')
         print(lista)
         continua = str(input('deseja deletar outro numero? '))
         while continua != 'nao':
             print('digite a posicao do numero que deseja excluir: ')
             posicao = int(input('digite a posicao: '))
             lista.remove(lista[posicao])
             print('valor', posicao, 'deletado com sucesso!')
             print(lista)
             continua = str(input('deseja deletar outro numero? '))

      if resposta == 'S':
          print("Saindo")

print('PROGRAMA ENCERRADO!!!!')
print(lista)
sys.exit(1)     
    
asked by anonymous 19.10.2018 / 16:49

2 answers

0

Use a while to repeat the typing until the user enters an existing position:

while True:
    posicao = int(input('digite a posicao: '))
    if 0 <= posicao < len(lista):
        break
    print('A posição {} não existe na lista. Use um número de 0 a {}!'.format(posicao, len(lista)-1))

Put this while every time you want to read a position ... or put it in a separate function ler_posicao() and call that function every time you need to read a position.

    
19.10.2018 / 17:43
0

Answer:

import sys
lista = []
resposta = ''
continua = ''
while resposta != 'S':
    print('#### MENU ####')
    print('[L]istar')
    print('[I]nserir')
    print('[A]lterar')
    print('[D]eletar')
    print('[S]air')
    resposta = str(input('selecione uma das opcoes: '))  

    if resposta == 'I':
        numero = int(input('digite o numero: '))
        lista.append(numero)
        print('Valor adicionado com sucesso: ', lista)
        continua = str(input('deseja adicionar outro numero? '))
        while continua != 'nao':
            numero = int(input('digite o numero: '))
            lista.append(numero)
            print('Valor adicionado com sucesso: ', lista)
            continua = str(input('deseja adicionar outro numero? '))

    if resposta == 'A':
        continua = ''
        while continua != 'nao':
            posicao = int(input('digite a posicao: '))
            if posicao == 0 or posicao <= len(lista)-1:
                print(lista[posicao])
                lista[posicao] = int(input('digite o novo numero: '))
                continua = str(input('deseja modificar outro numero? '))
            else:
                print('posicao invalida!!!!')
                continua = str(input('deseja modificar outro numero? '))
    if resposta == 'L':
        print('valores da lista: ', lista)

    if resposta == 'D':
        continua = ''
        while continua != 'nao':
            posicao = int(input('digite a posicao que deseja excluir: '))
            if posicao == 0 or posicao <= len(lista)-1:   
                lista.remove(lista[posicao])
                print('valor', posicao, 'deletado com sucesso!')
                print(lista)
                continua = str(input('deseja deletar outro numero? '))
            else:
                print('posicao invalida!!!!')
                continua = str(input('deseja deletar outro numero? '))

    if resposta == 'S':
        print("Saindo")

print('PROGRAMA ENCERRADO!!!!')
print(lista)
sys.exit(1)     
    
19.10.2018 / 22:09