用户:
KIHIO查看:10 回复:4 评论:10 创建时间:2021-10-04T20:51:38
【作品展示】

【作品介绍】
使用方法:先输入被转化数字的进制数、已转化数字的进制数、被转化数字,系统会输出已转化数字。
计算原理:
把输入的数字按照输入的数字的进制数转化为10进制数,再把10进制数转化为用输出的数字的进制数表示的数即可输出。
【作品源代码】
def main():
try:
j1=float(input('请输入被转化数字的进制数:'))
except ValueError:
print('输入错误,程序已停止运行。')
return 0
try:
j2=float(input('请输入已转化数字的进制数:'))
except ValueError:
print('输入错误,程序已停止运行。')
return 0
if int(j1)!=j1 or int(j2)!=j2:
print('输入错误,程序已停止运行。')
return 0
j1=int(j1)
j2=int(j2)
if (j1>16 or j2<2) or (j1<2 or j2>16):
print('输入错误,程序已停止运行。')
return 0
n=input('请输入被转化数字:')
i=0
aa=['a','b','c','d','e','f']
bb=[10,11,12,13,14,15]
ts=[]
for i in range(0,len(n)):
s=0
try:
cs=int(n[i])
except ValueError:
s=1
if s==0:
ts.append(int(n[i]))
else:
j=0
fl=0
for j in range(0,6):
if aa[j]==n[i]:
fl=1
break
if fl==1:
ts.append(bb[j])
else:
print('输入错误,程序已停止运行。')
return 0
if ts[i]>=j1:
print('输入错误,程序已停止运行。')
return 0
s1=0
for i in range(0,len(ts)):
s1+=ts[i]*(j1**(len(ts)-1-i))
if s1==0:
s2yd=[0]
else:
s2yd=[]
while s1>0:
s2yd.append(s1%j2)
s1=int(s1/j2)
i=len(s2yd)-1
s2y=[]
while i>=0:
s2y.append(s2yd[i])
i-=1
s2=' '
for i in range(0,len(s2y)):
if s2y[i]<10:
if s2==' ':
s2=str(s2y[i])
else:
s2=s2+str(s2y[i])
else:
if s2==' ':
s2=aa[s2y[i]-10]
else:
s2=s2+aa[s2y[i]-10]
print('已转化数字:'+s2)
return 0
x=main()
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn