网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
05月09日漏签0天
python吧 关注:483,016贴子:1,986,988
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 17回复贴,共1页
<<返回python吧
>0< 加载中...

求大佬指导一个真实萌新,不知道错在哪里

  • 只看楼主
  • 收藏

  • 回复
  • 前程似锦
  • 白丁
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
这是我写的一个进制转换的东西
任意进制转任意进制
包括浮点数
就是先把m进制转换成十进制在转换成n进制
转成十进制再转成n进制的过程中整数转换是没问题的
就是小数显示出错了
但是如果我单独把小数部分的程序拿出来运行是没问题的
百思不得其解
困扰了我三天了,心态完全崩了
求大佬告知错误之处,不胜感激


  • 前程似锦
  • 白丁
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
from math import *
def transfrom1(s,k): #将k进制转换为十进制
t=len(s)+1
for i in s:
if i=='.':
t=s.index('.') #判断s中是否有.及找出.的位置,如果没有,则位置超出列表
A=s[t-1::-1]
x=0
for i in range(len(A)):
if ord(A[i])>47 and ord(A[i])<58:
x+=int(A[i])*(k**i)
elif ord(A[i])>96 and ord(A[i])<122:
x+=(ord(A[i])-87)*(k**i)
else:
x+=(ord(A[i])-55)*(k**i) #将s的整数部分转换为十进制
B=s[t+1:]
for i in range(len(B)):
if ord(B[i])>47 and ord(B[i])<58:
x+=int(B[i])/(k**(i+1))
elif ord(B[i])>96 and ord(B[i])<122:
x+=(ord(B[i])-87)/(k**(i+1))
else:
x+=(ord(B[i])-55)/(k**(i+1)) #将s的小数部分转换为十进制
return x
def transform2(q,w):
A='' #将十进制转换为k进制
s=floor(q)
B='0123456789abcdefghijklmnopqrstuvwxyz'
while True:
A=B[s%w]+A
s=s//w
if s//2==0:
A=B[s%w]+A
break #将s的整数部分转换为k进制
print(A)
A+='.'
t=q-s
for i in range(10):
t*=w
print('##')
if (t-int(t))!=0:
if t>=1:
A+=B[int(t)]
t-=int(t)
else:
A+='0'
else:
A+=B[int(t)]
break
print(i)#将s的小数部分转换为k进制
print(A)
print('本程序将m进制数转化为n进制数')
m=int(input('请输入m'))
n=int(input('请输入n'))
s=str(input('请输入m进制数字'))
a=transfrom1(s,m)
print(a)
transform2(a,n)


2026-05-09 11:21:24
广告
不感兴趣
开通SVIP免广告
  • 前程似锦
  • 白丁
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼


  • 前程似锦
  • 白丁
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼


  • 前程似锦
  • 白丁
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
A=''
q=171.17534722222223
s=int(q)
w=2
t=q-s
B='0123456789abcdefghijklmnopqrstuvwxyz'
for i in range(10):
t*=w
print('##')
if (t-int(t))!=0:
if t>=1:
A+=B[int(t)]
t-=int(t)
else:
A+='0'
else:
A+=B[int(t)]
break
#将s的小数部分转换为k进制
print(A)


  • jmzl
  • 进士
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
不要用整数部分去减小数部分,有时候会有意外收获的哦!用字符串切割方式分开


  • 优就业小白老师
  • 进士
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我这有一个Python学习交流群,里面有大神也有小白,可以在群里甩问题啊,而且不定期分享学习资料 Python学习交流群:519489681 备注:小白


  • 你真棒
  • 举人
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
你的B是一个字符串,并不是列表,表达有问题,不能用B[]这样进行切割,得先转换成列表


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 17回复贴,共1页
<<返回python吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示