Salve, fiz o exercício proposto para criar uma lista de números de 1 a 10, uma lista de nomes e outra de anos. Fiquei um tempo batendo cabeça aqui e quando fui ver a solução, vi que era pra ser algo mais simples, rs. A solução proposta era:
lista_de_numeros = [1,2,3,4,5,6,7,8,9,10]
lista_de_nomes = ['emy','gui','lais','mari']
lista_de_anos = [1999,2023]
Minha solução foi:
numeros_ate_9 = []
def main():
    inserir_numero()
  
def inserir_numero():
    numero = int(input('insira um número: '))
    numeros_ate_9.append(numero)
    if numero != 0:
        comecar_de_novo()
def comecar_de_novo():
    inserir_numero()
  
if __name__ == '__main__':
      main()
Como ainda não dominei bem a coisa do laço de lista, defini o "0" como gatilho para interromper a gambiarra que fiz com uma função chamando a outra infinitamente. Assim né... Funcionar, funcionou. Dá até pra ver no modo interativo.
[23:15:26] [~/Área de Trabalho/dev/sabor-express] ❱❱❱ python3  -i ./exercicio_6.py
insira um número: 1
insira um número: 2
insira um número: 3
insira um número: 4
insira um número: 5
insira um número: 6
insira um número: 7
insira um número: 8
insira um número: 9
insira um número: 0
>>> numeros_ate_9
[1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
>>> 
KeyboardInterrupt
>>> 
KeyboardInterrupt
>>> 
Mas alguém pode me dar umas ideias do que poderia ficar melhor?
Eu usei o pedaço do código
if __name__ == '__main__':
      main()
Pois sem ele não consegui fazer com que a função inserir_numero fosse chamada, mas eu gostaria de saber se há outra forma de invocar funções sem definir o documento como o principal da aplicação utilizando o código acima.
--------> EDIT <---------
Depois de postar vi que podia dar uma enxugada na gambiarra e eliminei 3 linha chamando a função inserir número diretamente na condicional:
if __name__ == '__main__':
      inserir_numero()
 
             
            