Mundo em Python

Conversor (e contagem regressiva) de números inteiros para números japoneses

from tkinter import *

# Configurações iniciais da janela
root = Tk()
root.geometry("700x300")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Conversor de números inteiros para números japoneses") # Título do aplicativo
titulo = Label(text="Conversor de números inteiros para números japoneses",
font=("Arial", "18", "bold"), bg="#103030", fg="#49e3e3")
titulo.place(relx=0.05, rely=0.05) # Subtítulo e entrada de números
texto_sub1 = Label(text="Números inteiros:",
font=("Arial", "18", "bold"), bg="#103030", fg="#49e3e3")
texto_sub1.place(relx=0.2, rely=0.32) Números_inteiros = StringVar()
Números_inteiros_entrada = Entry(textvariable=Números_inteiros,
font=("Arial", "12", "bold"),
bg="white", fg="blue", justify='center')
Números_inteiros_entrada.place(relx=0.55, rely=0.33, relwidth=0.35)
Números_inteiros_entrada.focus() # Função para limpar a entrada e o resultado
def limpar():
Números_inteiros_entrada.delete(0, END)
resultado_texto.config(text="") # Função para copiar o resultado
def copiar():
resultado = resultado_texto.cget("text")
if resultado:
root.clipboard_clear()
root.clipboard_append(resultado)
root.update() # Mantém o conteúdo copiado na área de transferência
resultado_texto.config(text="Resultado copiado!") # Função principal para conversão
def app():
try:
num = int(Números_inteiros.get())
numeros_japoneses = {
1: '', 2: '', 3: '', 4: '', 5: '', 6: '', 7: '', 8: '', 9: '',
10: '', 100: '', 1000: '', 10000: ''
} if num == 0:
mensagem = '' # Zero em japonês
else:
resultado = ""

# Milhares
if num >= 10000:
man = num // 10000
if man > 1:
resultado += numeros_japoneses[man]
resultado += numeros_japoneses[10000]
num %= 10000

# Centenas
if num >= 1000:
sen = num // 1000
if sen > 1:
resultado += numeros_japoneses[sen]
resultado += numeros_japoneses[1000]
num %= 1000

# Dezenas
if num >= 100:
hyaku = num // 100
if hyaku > 1:
resultado += numeros_japoneses[hyaku]
resultado += numeros_japoneses[100]
num %= 100

# Unidades
if num >= 10:
juu = num // 10
if juu > 1:
resultado += numeros_japoneses[juu]
resultado += numeros_japoneses[10]
num %= 10

# Unidades individuais
if num > 0:
resultado += numeros_japoneses[num] mensagem = resultado resultado_texto.config(text=mensagem) except ValueError:
resultado_texto.config(text="Valor digitado inválido!") # Função para ativar o botão "Mostrar" com a tecla Enter
def enter_key(event):
app() # Associa a tecla "Enter" à função principal
root.bind('<Return>', enter_key) # Botões de ação
but1 = Button(text="Mostrar", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=app)
but1.place(relx=0.1, rely=0.6, 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.6, 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.6, relwidth=0.25, relheight=0.1) # Botão para copiar o resultado
but_copiar = Button(text="Copiar", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=copiar)
but_copiar.place(relx=0.1, rely=0.8, relwidth=0.25, relheight=0.1) # Área para mostrar o resultado
resultado_texto = Label(text="",
font=("Arial", 12, "bold"), bg="#cfe2f3")
resultado_texto.place(relx=0.4, rely=0.8, relwidth=0.55, relheight=0.1) # Executa a janela principal
root.mainloop()

# Contagem regressiva em números Japonesesgem regressiva em números Japoneses


from tkinter import *

root = Tk()
root.geometry("700x300")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Contagem regressiva em números Japoneses") titulo = Label(text="Contagem regressiva em números Japoneses",
font=("Arial", "20", "bold"), bg="#103030", fg="#49e3e3")
titulo.place(relx=0.08, rely=0.05) texto_sub1 = Label(text="Número :",
font=("Arial", "18", "bold"), bg="#103030", fg="#49e3e3")
texto_sub1.place(relx=0.35, rely=0.24) Numero = StringVar()
Numero_entrada = Entry(textvariable=Numero,
font=("Arial", "12", "bold"),
bg="white", fg="blue", justify='center')
Numero_entrada.place(relx=0.55, rely=0.25, relwidth=0.35)
def limpar():
Numero_entrada.delete(0, END)
resultado_texto.config(text="")
def int_to_japanese(num):
numeros_japoneses = {
1: '', 2: '', 3: '', 4: '', 5: '', 6: '', 7: '', 8: '', 9: '',
10: '', 100: '', 1000: '', 10000: ''
} if num == 0:
return '' # Zero em japonês

resultado = ""

# Milhares
if num >= 10000:
man = num // 10000
if man > 1:
resultado += numeros_japoneses[man]
resultado += numeros_japoneses[10000]
num %= 10000

# Centenas
if num >= 1000:
sen = num // 1000
if sen > 1:
resultado += numeros_japoneses[sen]
resultado += numeros_japoneses[1000]
num %= 1000

# Dezenas
if num >= 100:
hyaku = num // 100
if hyaku > 1:
resultado += numeros_japoneses[hyaku]
resultado += numeros_japoneses[100]
num %= 100

# Unidades
if num >= 10:
juu = num // 10
if juu > 1:
resultado += numeros_japoneses[juu]
resultado += numeros_japoneses[10]
num %= 10

# Unidades individuais
if num > 0:
resultado += numeros_japoneses[num] return resultado
def app():
try:
num = int(Numero.get())
if num <= 0:
resultado_texto.config(text="Por favor, insira um número positivo!")
return

def countdown(i):
if i >= 0:
japanese_num = int_to_japanese(i)
resultado_texto.config(text=japanese_num)
root.after(1000, countdown, i - 1)
else:
resultado_texto.config(text="Contagem finalizada!") countdown(num)
except ValueError:
resultado_texto.config(text="Valor digitado inválido!")
but1 = Button(text="Mostrar", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=app)
but1.place(relx=0.1, rely=0.5, 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.5, 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.5, relwidth=0.25, relheight=0.1) resultado_texto = Label(text="",
font=("Arial", 12, "bold"), bg="#cfe2f3")
resultado_texto.place(relx=0.05, rely=0.7, relwidth=0.9, relheight=0.25) root.mainloop()
0