Last active
February 1, 2024 21:58
-
-
Save rodrigo-x/6b8929ae0daa42bef4077a00b897133c to your computer and use it in GitHub Desktop.
refactoring da taboada descritiva...
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment