Número por Extenso

cont = ("zero","um","dois","três","quatro","cinco","seis","sete",
"oito","nove","dez","onze","doze","treze","catorze","quinze",
"dezesseis","dezessete","dezoito","dezanove","vinte")
while True:
num = int(input("Digite um número entre 0 e 20: "))
if num >= 0 and num <= 20:
print(f"Você digitou: {cont[num]}.")
break
else:
print('\033[31mTente novamente.\033[m')

# Outra versão


from tkinter import *

def limpar():
Número_entrada.delete(0, END)
resultado.set("")

def app():
num = Número.get()
dicionario = {
'0 a 9': ['zero', 'um', 'dois', 'três', 'quatro', 'cinco', 'seis', 'sete', 'oito', 'nove'],
'10 a 19': ['dez', 'onze', 'doze', 'treze', 'quatorze', 'quinze', 'dezesseis', 'dezessete', 'dezoito', 'dezenove'],
'20 a 90': ['vinte', 'trinta', 'quarenta', 'cinquenta', 'sessenta', 'setenta', 'oitenta', 'noventa'],
'100 a 900': ['cem', 'cento', 'duzentos', 'trezentos', 'quatrocentos', 'quinhentos', 'seiscentos', 'setecentos', 'oitocentos', 'novecentos']
}

if num > 999 or num < 0:
mensagem = 'Número fora do intervalo permitido.'
else:
if num == 0:
extenso = dicionario['0 a 9'][0]
else:
extenso = ''
centena = num // 100
dezena = (num % 100) // 10
unidade = num % 10

if centena > 0:
if num == 100:
extenso += "cem"
else:
extenso += dicionario['100 a 900'][centena]
if dezena > 0 or unidade > 0:
extenso += ' e '

if dezena == 1:
extenso += dicionario['10 a 19'][unidade]
elif dezena > 1:
extenso += dicionario['20 a 90'][dezena - 2]
if unidade > 0:
extenso += ' e '
if unidade > 0 and dezena != 1:
extenso += dicionario['0 a 9'][unidade]

mensagem = f"Número {num} por extenso: {extenso}"

resultado.set(mensagem)

root = Tk()
root.geometry("500x300")
root.resizable(0, 0)
root.config(bg="#0f5b61")
root.title("Número Extensão")

titulo = Label(text="Número Extensão",
font=("Arial", "40", "bold"), bg="#0f5b61", fg="#1ea8b3")
titulo.place(relx=0.05, rely=0.05)

texto_sub1 = Label(text="Número de 1 a 999:",
font=("Arial", "18", "bold"), bg="#0f5b61", fg="#1ea8b3")
texto_sub1.place(relx=0.05, rely=0.33)

Número = IntVar()
Número_entrada = Entry(textvariable=Número,
font=("Arial", "12", "bold"),
bg="white", fg="blue", justify='center')
Número_entrada.place(relx=0.55, rely=0.34, relwidth=0.35)

but1 = Button(text="Mostrar", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=app)
but1.place(relx=0.1, rely=0.55, relwidth=0.25, relheight=0.1)

but_limpar = Button(text="Limpar", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=limpar)
but_limpar.place(relx=0.4, rely=0.55, relwidth=0.25, relheight=0.1)

but_sair = Button(text="Sair", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=root.destroy)
but_sair.place(relx=0.7, rely=0.55, relwidth=0.25, relheight=0.1)

resultado = StringVar()
resultado_texto = Label(textvariable=resultado,
font=("Arial", 12, "bold"), bg="#cfe2f3")
resultado_texto.place(relx=0.05, rely=0.7, relwidth=0.9, relheight=0.25)

root.mainloop()

Comentários

Mensagens populares deste blogue

Criar Cartões de Visita

12 signos egípcios

Calcular a percentagem de ocupação