# Функция перевода из двоичной системы
def ConvertFromBin(_value, _numSystem):
if _numSystem == 2:
return _value
elif _numSystem == 8:
try:
return oct(int(_value, 2))
except ValueError:
print('в двоичной системе есть только 1 и 0')
elif _numSystem == 10:
try:
return int(_value, 2)
except ValueError:
print('в двоичной системе есть только 1 и 0')
elif _numSystem == 16:
try:
return hex(int(_value, 2))
except ValueError:
print('в двоичной системе есть только 1 и 0')
# Функция перевода из восьмеричной системы
def ConvertFromOct(_value, _numSystem):
if _numSystem == 2:
try:
return bin(int(_value, 8))
except ValueError:
print('в восьмеричной системе есть только цифры от 0 до 7')
elif _numSystem == 8:
try:
return _value
except ValueError:
print('в восьмеричной системе есть только цифры от 0 до 7')
elif _numSystem == 10:
try:
return int(_value, 8)
except ValueError:
print('в восьмеричной системе есть только цифры от 0 до 7')
elif _numSystem == 16:
try:
return hex(int(_value, 8))
except ValueError:
print('в восьмеричной системе есть только цифры от 0 до 7')
# Функция перевода из десятичной системы
def ConvertFromDec(_value, _numSystem):
if _numSystem == 2:
try:
return bin(int(_value))
except ValueError:
print('в десятичной системе есть только цифры от 0 до 9')
elif _numSystem == 8:
try:
return oct(int(_value))
except ValueError:
print('в десятичной системе есть только цифры от 0 до 9')
elif _numSystem == 10:
try:
return int(_value)
except ValueError:
print('в десятичной системе есть только цифры от 0 до 9')
elif _numSystem == 16:
try:
return hex(int(_value))
except ValueError:
print('в десятичной системе есть только цифры от 0 до 9')
# Функция перевода из шестнадцатиричной системы
def ConvertFromHex(_value, _numSystem):
if _numSystem == 2:
try:
return bin(int(_value, 16))
except ValueError:
print('в шестнадцатиричной системе есть только цифры от 0 до A')
elif _numSystem == 8:
return oct(int(_value, 16))
elif _numSystem == 10:
return int(_value, 16)
elif _numSystem == 16:
return _value
Во-первых, у тебя проблемка с областью видимости:
добавь строку "global #NumSystem" в каждую def click#(event): - тогда присвоение будет происходить не локальной переменной, а той #NumSystem, в глобльном неймспейс, которая у тебя сейчас всё время остаётся = 0.
Во-вторых, у тебя напутано в def clickGO(event):
запрос идёт по fNumSystem, а текст формируется по ConvertFromBin(x, sNumSystem) - думаю, планировалось в соответствии, а то функция возвращает None.
И третье, чтобы хоть что-то происходило я во всех btn##.bind("", click##) я подобовлял "<Button-1>" вместо пустых кавычек.
Ну а вообще, чрезвычайная избыточность в коде и никакой архитектуры - старайся так не писать.