Skip to content

Commit b7c23f5

Browse files
committed
chore: main.py
1 parent 179eed1 commit b7c23f5

File tree

1 file changed

+29
-15
lines changed

1 file changed

+29
-15
lines changed

main.py

Lines changed: 29 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ class Base(Enum):
88
BINARY = 2
99
OCTAL = 3
1010
HEXADECIMAL = 4
11+
ASCII = 5
1112

1213
# Clear Command
1314
def clear_cmd():
@@ -56,20 +57,32 @@ def error(err):
5657
# Convertion
5758
def convertion(base, data):
5859
try:
59-
if base == Base.DECIMAL:
60-
decimal = int(data)
61-
elif base == Base.BINARY:
62-
decimal = int(data, 2)
63-
elif base == Base.OCTAL:
64-
decimal = int(data, 8)
65-
elif base == Base.HEXADECIMAL:
66-
decimal = int(data, 16)
67-
else:
68-
error("Invalid base")
60+
match base:
61+
case Base.DECIMAL:
62+
decimal = int(data)
63+
case Base.BINARY:
64+
decimal = int(data, 2)
65+
case Base.OCTAL:
66+
decimal = int(data, 8)
67+
case Base.HEXADECIMAL:
68+
decimal = int(data, 16)
69+
case Base.ASCII:
70+
decimal = [ord(character) for character in data]
71+
binary = ''.join([bin(character)[2:] for character in decimal])
72+
octal = ''.join([oct(character)[2:] for character in decimal])
73+
hexadecimal = ''.join([hex(character)[2:] for character in decimal])
74+
asci = ''.join([chr(character) for character in decimal])
75+
76+
# Convert to string
77+
decimal = ''.join([str(character) for character in decimal])
78+
return (decimal, binary, octal, hexadecimal, asci)
79+
case _:
80+
error("Invalid base")
6981
binary = bin(decimal)[2:]
7082
octal = oct(decimal)[2:]
7183
hexadecimal = hex(decimal)[2:]
72-
return (decimal, binary, octal, hexadecimal)
84+
asci = chr(decimal)
85+
return (decimal, binary, octal, hexadecimal, asci)
7386
except ValueError:
7487
error("System has value error")
7588
except TypeError:
@@ -89,19 +102,20 @@ def confirmation(base):
89102
error("Invalid choice")
90103

91104
# Result
92-
def result(decimal, binary, octal, hexadecimal):
105+
def result(decimal, binary, octal, hexadecimal, asci):
93106
separator()
94107
print(f"Decimal : {decimal}")
95108
print(f"Binary : {binary}")
96109
print(f"Octal : {octal}")
97110
print(f"Hexadecimal : {hexadecimal}")
111+
print(f"ASCII : {asci}")
98112
separator()
99113

100114
# Main
101115
def main(base):
102116
data = get_input(base)
103-
decimal, binary, octal, hexadecimal = convertion(base, data)
104-
result(decimal, binary, octal, hexadecimal)
117+
decimal, binary, octal, hexadecimal, asci = convertion(base, data)
118+
result(decimal, binary, octal, hexadecimal, asci)
105119
confirmation(base)
106120

107121
# Logic
@@ -117,4 +131,4 @@ def logic():
117131
main(Base(int(select)))
118132

119133
# Run
120-
logic()
134+
logic()

0 commit comments

Comments
 (0)