鱼C论坛

 找回密码
 立即注册
查看: 2160|回复: 3

[已解决]编写二进制转换的函数出现的问题

[复制链接]
发表于 2020-2-19 11:06:52 | 显示全部楼层 |阅读模式

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

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

x
首先,函数的实现代码如下:
def changee(x):                 #对函数进行定义
    a = []
    while(1):
        num1 = int(x%2)        #对需要进行二进制转换的数除2取余给num1
        if num1!=None:         #并且我们规定 只有当num1不为空的时候,才放进列表
            a.append(num1)     #对num1和列表的值进行验证
            print(num1)

        print(a)
        if num1==1:
            x = (x-1)/2
        else:
            x = x/2
        if x==0:
            break
    for each in range(len(a)):    #将列表元素中的值传给b,然后对b进行打印输出
        b = a.pop()
        print(b,end=' ')


print(changee(16))




可是我们来看看最终的打印结果
0
[0]
0
[0, 0]
0
[0, 0, 0]
0
[0, 0, 0, 0]
1
[0, 0, 0, 0, 1]
1 0 0 0 0 None

Process finished with exit code 0


我们看到,最后一行的打印输出是“1 0 0 0 0 None”比我们预计的结果中多了一个None
emmm 整了半天也不能把这个给去掉。。。
向四方大佬们求救啦。。。
谢谢大佬啦。。。
最佳答案
2020-2-19 11:33:01
xillnote 发表于 2020-2-19 11:20
额 我看过小甲鱼的标准答案,是用字符串来输出就解决了。。。可是为啥啊。。。pop的时候一定会到none嘛。。 ...

因为函数没有返回值,所以打印出了 None 。不打印就行了。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-2-19 11:09:29 | 显示全部楼层
不用 print 。
  1. def changee(x):                 #对函数进行定义
  2.     a = []
  3.     while(1):
  4.         num1 = int(x%2)        #对需要进行二进制转换的数除2取余给num1
  5.         if num1!=None:         #并且我们规定 只有当num1不为空的时候,才放进列表
  6.             a.append(num1)     #对num1和列表的值进行验证
  7.             print(num1)

  8.         print(a)
  9.         if num1==1:
  10.             x = (x-1)/2
  11.         else:
  12.             x = x/2
  13.         if x==0:
  14.             break
  15.     for each in range(len(a)):    #将列表元素中的值传给b,然后对b进行打印输出
  16.         b = a.pop()
  17.         print(b,end=' ')


  18. changee(16)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-19 11:20:47 | 显示全部楼层
额 我看过小甲鱼的标准答案,是用字符串来输出就解决了。。。可是为啥啊。。。pop的时候一定会到none嘛。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-19 11:33:01 | 显示全部楼层    本楼为最佳答案   
xillnote 发表于 2020-2-19 11:20
额 我看过小甲鱼的标准答案,是用字符串来输出就解决了。。。可是为啥啊。。。pop的时候一定会到none嘛。。 ...

因为函数没有返回值,所以打印出了 None 。不打印就行了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-2 18:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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