Поскольку это довольно справедливо - вот ответ, который довольно пифоничен и, надеюсь, послужит каноническим справочным материалом для будущих вопросов.
Прежде всего, просто сохраните ввод в виде строки:
binary_value = input('Enter a binary number: ')
Затем используйте встроенный int
с аргументом base
, равным 2 (что означает интерпретацию строки как двоичные цифры), чтобы получить целое число из вашей строки:
number = int(binary_value, 2)
# 10001111 -> 143
Затем вы можетеиспользуйте f-string
, чтобы напечатать ваш номер с указателем формата X
, что означает «в шестнадцатеричном виде с заглавными буквами и без префикса»:
print(f'The hex value is {number:X}')
В таком случае вся ваша база кода будет выглядеть примерно так:с двумя функциями и вашими соглашениями об именах):
def binaryToHex(binaryValue):
number = int(binaryValue, 2)
return format(number, 'X')
def main():
binaryValue = input('Enter a binary number: ')
print('The hex value is', binaryToHex(binaryValue))
main()