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()