Python

Нужен готовый код Python

Задача на программирование
Напишите программу, которая переведет десятичное число, которое дается на вход вашей программе, в 2, 8 и 16 системы счисления. В качестве ответа выведите представление числа в этих системах счисления.

Sample Input 1:

17
Sample Output 1:

0b10001
0o21
0x11
Sample Input 2:

123
Sample Output 2:

0b1111011
0o173
0x7b
Sample Input 3:

0
Sample Output 3:

0b0
0o0
0x0
 n = int(input())
print(bin(n))
print(oct(n))
print(hex(n))
 n = int(input())
print(bin(n), oct(n), hex(n), sep='\n')
Адлет Шынекенов
Адлет Шынекенов
79 917
Лучший ответ
Афанасий Великий
 print(*map(type(bin).__call__, (bin, oct, hex), (int(input()),) * 3), sep='\n') 
Вы можете использовать встроенные функции Python: bin(), oct(), и hex(), чтобы выполнить необходимые преобразования систем счисления. Вот простой пример:
 def convert_num_systems(): 
num = int(input("Введите число: "))

# Переводим в двоичную систему
binary = bin(num)
print(binary)

# Переводим в восьмеричную систему
octal = oct(num)
print(octal)

# Переводим в шестнадцатеричную систему
hexa = hex(num)
print(hexa)

convert_num_systems()
Перевод десятичных чисел в hex делал когда-то, дарю. Там чуть посложнее чем в двоичную и восьмеричную, посколько в результате есть не только цифры, но и латинские буквы. А вообще в Питоне для всех трех случаев есть встроенные функции
 letters = [chr(i) for i in range(ord('a'), ord('f') + 1)] 
nums = [i for i in range(10, 16)]


def int_part(n):
global letters, nums
result, final = [], []
if not n:
return '0x0'
else:
while n > 0:
result += [n % 16]
n = n // 16
for i in result:
if i in nums:
final += letters[nums.index(i)]
else:
final += str(i)
return ' '.join(['0x' + ''.join((final[::-1]))])


def float_part(f):
global letters, nums
result, final, i = [], [], 0
while f - int(f) or i < 11:
f *= 16
result += [int(f)]
f = f - int(f)
i += 1
for i in result:
if i in nums:
final += letters[nums.index(i)]
else:
final += str(i)
return ''.join(final)


try:
decimal = input('DEC ')
if '.' in decimal and decimal[0] != '.' and decimal[-1] != '.':
decimal = float(decimal)
else:
decimal = int(decimal)
if isinstance(decimal, int):
print('HEX', int_part(decimal))
if isinstance(decimal, float):
float_p = decimal - int(decimal)
int_p = int(decimal)
print('HEX', int_part(int_p) + '.' + float_part(float_p))
except ValueError:
print('Wrong input')

# 6783.05493
# 1A7F.0E0FE47991B
Гена Хайров
Гена Хайров
5 840