Olá Luiz, tudo bem? Tenho algumas sugestões para o código, se der certo me avise por gentileza.
O problema está no seu tratamento de exceções. No momento, vc está tentando capturar uma exceção geral usando except:. Isso não é muito específico e pode não capturar exceções relacionadas à conversão de entrada de texto para um número inteiro.
Uma maneira melhor seria capturar a exceção específica que ocorre quando a conversão falha. Além disso, é uma boa prática ser o mais específico possível ao capturar exceções. Vamos ajustar seu código para capturar a exceção ValueError, que ocorre quando a conversão de entrada para um número falha:
range_definido = range(1 , 11)
def inserir_numero():
try:
numero_digitado = int(input('Digite um número para saber sua tabuada\n'))
return numero_digitado
except ValueError:
print('Opção inválida')
return None
def tabuada(numero_digitado):
if numero_digitado is not None:
for i in range_definido:
resultado = numero_digitado * i
print(f'{numero_digitado} x {i} = {resultado}')
def main():
numero_digitado = inserir_numero()
tabuada(numero_digitado)
if __name__ == '__main__':
main()
Nesse código, except ValueError: é usado para capturar especificamente exceções relacionadas à conversão de texto para um número inteiro. Se ocorrer um ValueError, a mensagem 'Opção inválida' será impressa. Caso contrário, a tabuada será calculada como esperado.