鱼C论坛

 找回密码
 立即注册
查看: 454|回复: 11

新人求助

[复制链接]
发表于 2018-7-30 22:43:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 WwBin 于 2018-7-30 23:12 编辑

这是我写的一段代码,python3,本意是想通过整除2将十进制转换成二进制,但是我发现使用 / 时不管得数是整数还是小数都会显示成浮点数,用 // 都会变成整数,有没有办法在计算时得数是小数就得到小数,是整数就得到整数呢?嘤嘤嘤~

def biner(x):
        x = int(x)
        lister = []
        while True:
                x = x / 2
                if x != 0:
                        if True == isinstance(x,int):
                                lister.insert(0,0)
                        if False == isinstance(x,int):
                                lister.insert(0,1)
                                x = int(x)
                else:
                        break
        print(lister)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-7-30 22:58:35 | 显示全部楼层
python 2 还是 python 3 ?
它们的除法有不一样的地方。问题是
x = int(x),那么接下来的运算都是针对整数的呀。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-30 22:59:06 From FishC Mobile | 显示全部楼层
int()、float()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-7-30 23:12:22 | 显示全部楼层
claws0n 发表于 2018-7-30 22:58
python 2 还是 python 3 ?
它们的除法有不一样的地方。问题是
x = int(x),那么接下来的运算都是针对整数 ...

python3,因为我想要判断他是不是整数,如果是的话就向列表里面添加0,不是的话添加1,有办法让他相除以后自动区分整数和浮点数吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-7-30 23:13:07 | 显示全部楼层

emmmm并不是,我是想要判断~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-30 23:21:00 | 显示全部楼层
WwBin 发表于 2018-7-30 23:12
python3,因为我想要判断他是不是整数,如果是的话就向列表里面添加0,不是的话添加1,有办法让他相除以 ...

那就直接 isinstance(x,int) 就是 True/False 了,何须 x = x/2 ?
python 3 的 / 不是地板除法,而是人类思维的一般除法,整数就整数,小数就小数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-30 23:36:35 | 显示全部楼层
def num(first,last):
    n = first / last
    if n == int(n):
        print(int(n))
    else:
        print(n)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-31 01:19:53 | 显示全部楼层
#10 ---- 1010  10%2 = 0  5%2 = 1 2%2=0 1%2 = 1
''' 你的写法我也不知道怎么改,所以干脆换了个写法'。。。有点长你帮我改改?''
a = int(input('请输入整数:'))
list1 = []
x = 0
while True:
    if a != 1:
        x = int(a % 2)
        a = int(a // 2)
        list1.append(x)
    else:
        list1.append(a)
        break
list1.reverse()
for each in list1:
    print(each,end='')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-31 01:21:08 | 显示全部楼层
#10 ---- 1010   10%2 = 0  5%2 = 1 2%2=0 1%2 = 1

'''不知道怎么给你改,换了个写法
'''
a = int(input('请输入整数:'))
list1 = []
x = 0
while True:
   
    if a != 1:
        x = int(a % 2)
        a = int(a // 2)
        list1.append(x)
    else:
        list1.append(a)
        break
list1.reverse()
for each in list1:
    print(each,end='')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-31 01:22:12 | 显示全部楼层
有毒,我写的怎么看不见
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-31 08:38:39 | 显示全部楼层
建议用 % 搭配 // 使用来解决这个问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-31 17:12:34 | 显示全部楼层
python 内置函数 bin可以满足你的需求
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-5 23:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表