用户:
盒子的box查看:25 回复:11 评论:25 创建时间:2020-03-20T21:07:10
【作品展示】

【作品介绍】
进制转换v2.4与大家见面啦!这次的成果简化了代码,增加了错误提示,还可以转换20进制以内的数!
大家可以修改l1、l2的值以转换更高的进制!
【作品源代码】
# 修改l1、l2的值,可以转换更高的进制哦~
l1 = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']
l2 = ['10', '11', '12', '13', '14', '15', '16', '17', '18', '19']
while True:
try:
a = 0
b = 0
num = list(input('初始值是多少?'))
for i in num:
if (i in l1):
num[num.index(i)] = l2[l1.index(i)]
jz = int(input('此值为几进制?'))
tjz = int(input('转换为几进制?'))
for i in range(len(num)):
a += (int(num[b]) * (jz ** (len(num) - b - 1)))
b += 1
num = [str(a % tjz)]
a = a // tjz
while (a != 0):
num = [str(a % tjz)] + num
a = a // tjz
for i in num:
if (i in l2):
num[num.index(i)] = l1[l2.index(i)]
print('结果是', ''.join(num))
except Exception as e:
print('程序出错了emmm......')
print('错误提示:', e)
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn
煤黑烧饼我有个更好的,10行(看起来不像,实际上真的10行),任意2-62进制转换任意2-62进制
DIC='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
def anytoany(a: str,abase: int,bbase: int) -> str:
def tentoany(a,base,text=''):
if base<2 or a<0:
return '输入有误'
else:
return (text+DIC[a%base])[::-1] if a//base==0 else tentoany(a//base,base,text+DIC[a%base])
def anytoten(text,base):
return '输入有误' if set(text)-set(DIC[:base])!=set() else sum(map(lambda a:a[0]*a[1],zip([DIC.index(i) for i in text],[base**i for i in range(len(text)-1,-1,-1)])))
return tentoany(anytoten(a,abase),bbase)点赞0
评论
煤黑烧饼新的(改良了非法判断)
DIC='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
def anytoany(a: str,abase: int,bbase: int) -> str:
return tentoany(anytoten(a,abase),bbase)
def tentoany(a,base,text=''):
if not 1<base<63 or a<0:
return '输入有误'
else:
return (text+DIC[a%base])[::-1] if a//base==0 else tentoany(a//base,base,text+DIC[a%base])
def anytoten(text,base):
return '输入有误' if set(text)-set(DIC[:base])!=set() or not 1<base<63 else sum(map(lambda a:a[0]*a[1],zip([DIC.index(i) for i in text],[base**i for i in range(len(text)-1,-1,-1)])))点赞0
评论
煤黑烧饼喵压缩,4行搞定:
DIC='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
def anytoany(a,abaset,bbase): return tentoany(anytoten(a,abase),bbase)
def tentoany(a,base,text=''): return '输入有误' if not 1<base<63 or a<0 else ((text+DIC[a%base])[::-1] if a//base==0 else tentoany(a//base,base,text+DIC[a%base]))
def anytoten(text,base): return '输入有误' if set(text)-set(DIC[:base])!=set() or not 1<base<63 else sum(map(lambda a:a[0]*a[1],zip([DIC.index(i) for i in text],[base**i for i in range(len(text)-1,-1,-1)])))点赞0
评论
煤黑烧饼最后的天书版:3行,带混淆:
我不信有人能看懂:
anytoany =lambda OO0OOOOOO0OOO0OO0 ,O00O00O00O0O000O0 ,O0OOO00OO0O0O0OO0 :O0OO0OOOO0O00000OO0O (O0OO0OOOO0OOOO0OOO (OO0OOOOOO0OOO0OO0 ,O00O00O00O0O000O0 ),O0OOO00OO0O0O0OO0 )
O0OO0OOOO0O00000OO0O =lambda O000000O000OOOO00 ,O0000O0OOO000O0O0 ,OO0000O0000O000O0 ='':'输入有误'if not 1 <O0000O0OOO000O0O0 <63 or O000000O000OOOO00 <0 else ((OO0000O0000O000O0 +'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'[O000000O000OOOO00 %O0000O0OOO000O0O0 ])[::-1 ]if O000000O000OOOO00 //O0000O0OOO000O0O0 ==0 else O0OO0OOOO0O00000OO0O (O000000O000OOOO00 //O0000O0OOO000O0O0 ,O0000O0OOO000O0O0 ,OO0000O0000O000O0 +'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'[O000000O000OOOO00 %O0000O0OOO000O0O0 ]))
O0OO0OOOO0OOOO0OOO =lambda O00OO00OOO0OOO000 ,O0000OOO0OOO0O0O0 :'输入有误'if set (O00OO00OOO0OOO000 )-set ('0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'[:O0000OOO0OOO0O0O0 ])!=set ()or not 1 <O0000OOO0OOO0O0O0 <63 else sum (map (lambda O0OOO0OO00OO0OOOO :O0OOO0OO00OO0OOOO [0 ]*O0OOO0OO00OO0OOOO [1 ],zip (['0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'.index (O00OO00OOO00OOO00 )for O00OO00OOO00OOO00 in O00OO00OOO0OOO000 ],[O0000OOO0OOO0O0O0 **O0OOOO0OO0OO00OO0 for O0OOOO0OO0OO00OO0 in range (len (O00OO00OOO0OOO000 )-1 ,-1 ,-1 )])))点赞0
评论