鱼C论坛

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

新人求助

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

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

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

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

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


  1. def biner(x):
  2.         x = int(x)
  3.         lister = []
  4.         while True:
  5.                 x = x / 2
  6.                 if x != 0:
  7.                         if True == isinstance(x,int):
  8.                                 lister.insert(0,0)
  9.                         if False == isinstance(x,int):
  10.                                 lister.insert(0,1)
  11.                                 x = int(x)
  12.                 else:
  13.                         break
  14.         print(lister)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

使用道具 举报

发表于 2018-7-30 22:59:06 From FishC Mobile | 显示全部楼层
int()、float()
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

使用道具 举报

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

emmmm并不是,我是想要判断~~
小甲鱼最新课程 -> https://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 的 / 不是地板除法,而是人类思维的一般除法,整数就整数,小数就小数
小甲鱼最新课程 -> https://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)
小甲鱼最新课程 -> https://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='')
小甲鱼最新课程 -> https://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='')
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-31 01:22:12 | 显示全部楼层
有毒,我写的怎么看不见
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-31 08:38:39 | 显示全部楼层
建议用 % 搭配 // 使用来解决这个问题
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-31 17:12:34 | 显示全部楼层
python 内置函数 bin可以满足你的需求
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-12 18:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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