Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+4

Python: калькулятор перевода из десятичной системы счисления в двоичную и обратно.

Здравствуйте! Имею такую проблему: настрочил калькулятор перевода систем счисления на 50+ строк, но исправляя в нем кучу хлама и каши у меня он окончательно перестал работать. Моя голова уже не способна что-то рассуждать, и по этому я решил обратиться сюда по поводу решению моей проблемы.
Мне нужно исправить все ошибки и недочеты в программе, так, чтобы она работало корректно и по плану.
План:
*запуск программы*
Выберите действие: перевод десятичной системы счисления в двоичную / наоборот (1, 2 или help): {{ввод}}
*при вводе "1" должно появится:*
Введите число в десятичной системы счисления:
*при вводе числа в десятичной системе должно дать ответ:*
Ответ (в двоичной системе счисления): {{ответ}}
*при вводе "2" должно появится:*
Введите число в двоичной системе счисления: {{объяснять не нужно}}
*при вводе числа в двоичное системе должно дать ответ:*
Ответ (в десятичной системе счисления): {{ыыыыыЪ}}
*при вводе "help" должен появится определенный текст, который написан в конце кода, но планируется переделываться.*
*конец программы должен осуществить сам пользователь, нажав на Enter:*
Нажмите Enter чтобы закрыть программу.{{ввод Enter}}

123456789101112131415161718192021222324252627
 vibor = input("Выберите действие: перевод десятичной системы счисления в двоичную / наоборот (1, 2 или help): ") 
if int(vibor) == int("1"): 
    chislo10 = int(input("Введите число в десятичной системы счисления: ")) 
    hui = '' 
    while chislo10 > 0: 
        hui = str(chislo10 % 2) + hui 
        chislo10 = chislo10 // 2 
    print("Ответ (в двоичной системе счисления): " + hui) 
elif int(vibor) == int("2"): 
    chislo2 = int(input("Введите число в двоичной системе счисления: ")) 
    penes = int(str(1), 2) 
    try: 
        vibor = int(chislo2) 
        pass 
    except: 
        print("Ошибка 0x02: неправильно введено число") 
    if chislo2 >= int(penes): 
        pass 
    else: 
        print("Ошибка 0x02: неправильно введено число") 
    siski = int(str(chislo2), 2) 
    print("Ответ (в десятичной системе счисления): " + str(siski)) 
elif int(vibor) == int("help"): 
    print("Ошибки программы и как их исправить") 
    print("0x01: Неправильно набран номер выбора") 
    print("0x01 выдает, если вы написали не то число или текст. (допустимо: \"1\" \"2\" \"help\")") 
end = input("Нажмите Enter чтобы закрыть программу.") 

сразу прошу простить за мою глуповатость в коде, по этому прошу сделать так, чтобы это все работало, но при вводе неправильного значения переменной не выдавало ошибку красным кодом, а писало какой-либо текст (какой - я уже сам определюсь, по этому просто можно набор букв). заранее спасибо.

По дате
По рейтингу
Аватар пользователя
Новичок
123456789101112131415161718192021222324
 vibor = input("Выберите действие: перевод десятичной системы счисления в двоичную / наоборот (1, 2 или help): ") 
 
if vibor == "1": 
    chislo10 = int(input("Введите число в десятичной системе счисления: ")) 
    hui = '' 
    while chislo10 > 0: 
        hui = str(chislo10 % 2) + hui 
        chislo10 = chislo10 // 2 
    print("Ответ (в двоичной системе счисления): " + hui) 
 
elif vibor == "2": 
    chislo2 = input("Введите число в двоичной системе счисления: ") 
    try: 
        siski = int(chislo2, 2) 
        print("Ответ (в десятичной системе счисления): " + str(siski)) 
    except ValueError: 
        print("Ошибка 0x02: неправильно введено число") 
 
elif vibor == "help": 
    print("Ошибки программы и как их исправить") 
    print("0x01: Неправильно набран номер выбора") 
    print("0x01 выдает, если вы написали не то число или текст. (допустимо: \"1\" \"2\" \"help\")") 
 
end = input("Нажмите Enter чтобы закрыть программу.") 
Аватар пользователя
Мудрец
123456789101112
 converts = {'1': lambda x: f"{x} in binary sys: {format(x, 'b')}", 
            '2': lambda x: f"{x} in decimal sys: {int(str(x), 2)}"} 
num_sys = input('1. (10 to 2) / 2. (2 to 10) or help: ').lower() 
if num_sys == 'help': 
    print('Documentation') 
else: 
    try: 
        n = int(input('Enter the number: ')) 
    except ValueError: 
        print('Ошибка!') 
    else: 
        print(converts[num_sys](n)) 
Аватар пользователя
Ученик

О халф лайф круто