使用int()函数实现任意进制转十进制,自定义函数conv()实现十进制转任意进制
注意:基的取值限2-36![Python] 纯文本查看 复制代码 def conv(m, n):
# n为待转换的十进制数,m为新的基,m的取值为2-36
# 新建列表,包含从0-9、A-Z,共36个字符
a = []
for i in range(10):
a.append(i)
for i in range(65, 91):
a.append(chr(i))
# 新建空列表,用来存放余数
b = []
while True:
s = m // n # 求商
t = m % n # 除权求余数
b.append(t) # 将余数存进列表b
if s == 0:
break
m = s
b.reverse() # 逆取余
for i in b:
print(a[i], end='')
# 输出对应进制每一位的值
A = input('A.十进制转换为其他进制/B.其他进制转为十进制\n')
if A == 'A' or A == 'a':
y = eval(input('新的基设为:'))
# 先判断基的范围,正确则直接调用自定义函数
if y > 36 or y < 2:
print('\033[31m输入错误!基的取值限2-36')
else:
x = eval(input('要转换的十进制数:'))
print(f'{y}进制数为:', end='')
conv(x, y)
elif A == 'B' or A == 'b':
x = input('原数为:')
y = eval(input('原数的进制为:'))
print(f'十进制数为:{int(x, y)}')
|