鱼C论坛

 找回密码
 立即注册
查看: 1230|回复: 9

[已解决]十进制转换二进制的问题

[复制链接]
发表于 2019-3-21 22:00:33 | 显示全部楼层 |阅读模式

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

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

x
def Dec2Bin(dec):
    temp = []
    result = ''
   
    while dec:
        a = dec % 2
        dec = dec // 2
        temp.append(a)

    while temp:
        result += str(temp.pop())

    return result

没有搞清楚 为什么循环temp  要在temp后面加一个pop()
最佳答案
2019-3-21 22:08:08
pop是弹出最后一个元素,小甲鱼应该有讲过,
你说的方法可能也行,不过你最好写出来代码看行不行
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-3-21 22:03:29 | 显示全部楼层
为什么 要用一个temp 做一个空列表 然后再导入result,直接result不行吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-21 22:08:08 | 显示全部楼层    本楼为最佳答案   
pop是弹出最后一个元素,小甲鱼应该有讲过,
你说的方法可能也行,不过你最好写出来代码看行不行
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-3-21 22:27:12 | 显示全部楼层
塔利班 发表于 2019-3-21 22:08
pop是弹出最后一个元素,小甲鱼应该有讲过,
你说的方法可能也行,不过你最好写出来代码看行不行

我想起来了 pop()不是删除最后一个元素,而是返回最后一个元素的值
是不是因为 上面的while循环dec,得出来的数字 要倒序才是二进制的数字,才需要pop()一个一个倒序提出
那这种的话 能不能用temp.reverse()来代替temp.pop()呢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-21 22:31:31 | 显示全部楼层
kklnkklnkkln 发表于 2019-3-21 22:27
我想起来了 pop()不是删除最后一个元素,而是返回最后一个元素的值
是不是因为 上面的while循环dec, ...

你reverse也行,只要最终结果能对就行
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-3-21 22:36:41 | 显示全部楼层
塔利班 发表于 2019-3-21 22:31
你reverse也行,只要最终结果能对就行

def Dec2Bin(dec):
    temp = []
    result = ''
   
    while dec:
        a = dec % 2
        dec = dec // 2
        temp.append(a)

    result = str(temp.reverse())
        

    return result
print(Dec2Bin(789))


我用了reverse  按逻辑来说取消了 while temp 但是输出结果是none  是为什么呢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-21 22:38:41 | 显示全部楼层
reverse没有返回值,只有操作,还有题目要求返回形成二进制的字符串,不是把个列表结构丢给str就能达到结果
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-3-21 22:46:36 | 显示全部楼层
塔利班 发表于 2019-3-21 22:38
reverse没有返回值,只有操作,还有题目要求返回形成二进制的字符串,不是把个列表结构丢给str就能达到结果

题目是字符串,但是我想看看能不能转换为 整数,
reverse的对象是temp呀,
那这个程序 要用reverse来操作的话,该怎么写呢,大神能写一个解答一下吗,感谢!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-22 08:28:12 | 显示全部楼层
kklnkklnkkln 发表于 2019-3-21 22:46
题目是字符串,但是我想看看能不能转换为 整数,
reverse的对象是temp呀,
那这个程序 要用reverse来操 ...

10进制 就是10进制,所说的数值型
但是二进制却永远都是字符串(不论哪种语言都是如此)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-22 08:37:26 | 显示全部楼层
reverse还得多写,用切片了
  1. def Dec2Bin(dec):
  2.     temp = []
  3.     while dec:
  4.         a = dec % 2
  5.         dec = dec // 2
  6.         temp.append(a)
  7.     return ''.join(map(str,temp[::-1]))  

  8. print(Dec2Bin(789))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-21 03:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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