1
I made a very simple code to simulate lines in python:
lista = []
def a(lista): return lista.append(str(input('Nome: ')).lower().strip())
def b(lista: list):
if len(lista) == 0:
print('A lista está vazia, impossível a remoção de item.')
else:
av = lista.pop(len(lista)-1)
print(f'Item {av} foi removido da lista.')
return lista
dicio = {'i': a, 'p': b, 'x': 'esta parte não importa'}
while True:
opção = str(input('''O que deseja fazer?
- [i] para inserir um nome na lista.
- [p] para excluir o primeiro item da lista.
- [x] para encerrar o programa.
''')).lower().strip()
while True:
if opção in dicio: break
opção = str(input('Opção inválida, tente novamente:\n')).lower().strip()
if opção == 'x': break
lista = dicio[opção](lista)
The problem is that after using a few times this error message appears:
TypeError: object of type 'NoneType' has no len()
or that:
AttributeError: 'NoneType' object has no attribute 'append'
The method
append
of alist
does not return value, it modifies the list "in-place". To return the list, first do theappend
and in the next line return the same.– Rfroes87