-
Notifications
You must be signed in to change notification settings - Fork 10
Expand file tree
/
Copy pathRoman_numerals_GUI.py
More file actions
executable file
·54 lines (44 loc) · 1.63 KB
/
Roman_numerals_GUI.py
File metadata and controls
executable file
·54 lines (44 loc) · 1.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#coding=UTF-8
from Tkinter import *
class App:
def __init__(self, master):
self.l1 = Label(master, text="一个优雅的罗马数字转换器<(0^◇^0)>")
self.l1.grid(row=0,columnspan=3, sticky=W)
self.l1 = Label(master, text="输入")
self.l1.grid(row=1)
self.v = IntVar()
self.e1 = Entry(master, textvariable=self.v)
self.e1.grid(row=1, column=1)
self.b1 = Button(master, text="转换", command=self.convert)
self.b1.grid(row=1, column=2)
self.m = StringVar()
self.m1 = Message(master, textvariable=self.m, aspect=5000)
self.m1.grid(row=2, columnspan=3, sticky=W)
def convert(self):
bd = {1: "I", 2: "II", 3: "III", 4: "IV", 5: "V", 6: "VI", 7: "VII", 8: "VIII", 9: "IX"}
td = {1: "X", 2: "XX", 3: "XXX", 4: "XL", 5: "L", 6: "LX", 7: "LXX", 8: "LXXX", 9: "XC"}
hd = {1: "C", 2: "CC", 3: "CCC", 4: "CD", 5: "C", 6: "DC", 7: "DCC", 8: "DCCC", 9: "CM"}
md = {1: "M", 2: "MM", 3: "MMM"}
m = ""
x = self.v.get()
if x < 0 or x > 3999:
m = "数字超过范围"
else:
if x > 1000:
m = x / 1000
m = md.get(m)
x = x % 1000
if x > 100:
h = x / 100
m = m + hd.get(h)
x = x % 100
if x > 10:
t = x / 10
m = m + td.get(t)
x = x % 10
if x > 0:
m = m + bd.get(x)
self.m.set(m)
root = Tk()
app = App(root)
root.mainloop()