Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python3
- # -*- coding: utf-8 -*-
- import pyttsx3
- def inicializar_engine():
- """Inicializa a engine de texto para fala."""
- return pyttsx3.init()
- def gerar_tabuada(numero, num_linhas):
- """Gera a tabuada para um determinado número."""
- return [f'{numero} vezes {i} = {numero * i}' for i in range(1, num_linhas + 1)]
- def falar_resultados(engine, resultados):
- """Fala os resultados da tabuada."""
- for resultado in resultados:
- # Substitui " vezes " por " X " na impressão, mantendo " vezes " na fala
- print(resultado.replace(" vezes ", " X "))
- engine.say(resultado)
- engine.runAndWait()
- def obter_entrada_do_usuario(prompt):
- """Obtém a entrada do usuário com tratamento de erro para números inválidos."""
- while True:
- try:
- return int(input(prompt))
- except ValueError:
- print('Por favor, insira um número inteiro válido.')
- def main():
- engine = inicializar_engine()
- engine.setProperty("voice", "brazil")
- numero = obter_entrada_do_usuario('\nDeseja a tabuada de qual número? \n')
- num_linhas = obter_entrada_do_usuario('\nQuantas linhas deseja para a tabuada? \n')
- tabuada = gerar_tabuada(numero, num_linhas)
- print('\n')
- falar_resultados(engine, tabuada)
- engine.stop()
- if __name__ == '__main__':
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement