鱼C论坛

 找回密码
 立即注册
查看: 2262|回复: 8

[已解决]大佬求帮助

[复制链接]
发表于 2021-4-9 19:00:11 | 显示全部楼层 |阅读模式

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

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

x
def temp(x):
    list = []
    while x != 0:
        t = x % 2
        x = int(x/2)
        list . append(t)
print(list)


#他报错 是出现<class 'list'>这个
程序目的是 编写一个将十进制转换为二进制的函数,要求采用“除2取余”(补脑链接)的方式,结果与调用 bin() 一样返回字符串形式
最佳答案
2021-4-9 19:54:01
而且用列表的话会造成二进制0,1的顺序颠倒,可以考虑改成字符串
  1. def Dec2Bin(dec):
  2.     result = ''
  3.     if dec:
  4.         result = Dec2Bin(dec // 2) #每取余得到二进制的一位,递归的参数就地板除二,直到dec为0为止,说明各位已取完
  5.         return result + str(dec % 2) #取余2得到的余数为二进制各位的倒序,依次以字符串的形式拼接在一起,相当于正序
  6.     else:
  7.         return result #返回正序二进制字符串
  8. print(Dec2Bin(200))#打印出返回值
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-4-9 19:08:48 | 显示全部楼层
列表命名要避开list
你这样会覆盖掉list方法,造成报错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-9 19:34:37 | 显示全部楼层
1,变量命名最好不要用内置的关键字
2,函数定义不代表调用,你得调用
3,局部变量无法在外部访问
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2021-4-9 19:48:41 | 显示全部楼层
昨非 发表于 2021-4-9 19:08
列表命名要避开list
你这样会覆盖掉list方法,造成报错

def temp(x):
    guess = []
    while x:
        t = x % 2
        x = int(x/2)
        guess . append(t)

print(temp(200))

大佬 我给他换了之后可是我的结果出现了 这个None
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-9 19:51:53 | 显示全部楼层
帅气小哥 发表于 2021-4-9 19:48
def temp(x):
    guess = []
    while x:

函数缺少返回值啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-9 19:54:01 | 显示全部楼层    本楼为最佳答案   
而且用列表的话会造成二进制0,1的顺序颠倒,可以考虑改成字符串
  1. def Dec2Bin(dec):
  2.     result = ''
  3.     if dec:
  4.         result = Dec2Bin(dec // 2) #每取余得到二进制的一位,递归的参数就地板除二,直到dec为0为止,说明各位已取完
  5.         return result + str(dec % 2) #取余2得到的余数为二进制各位的倒序,依次以字符串的形式拼接在一起,相当于正序
  6.     else:
  7.         return result #返回正序二进制字符串
  8. print(Dec2Bin(200))#打印出返回值
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-9 20:04:48 | 显示全部楼层
昨非 发表于 2021-4-9 19:51
函数缺少返回值啊

1. 函数缺少返回值?这个什么意思啊?
2. 直接把值先正序放到列表里 然后在把列表倒序 在打印这个列表不就好了吗
3. 那个 if函数的我也没看懂  dec//2 前面为啥加上Dec2Bin
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-9 22:08:34 | 显示全部楼层
帅气小哥 发表于 2021-4-9 20:04
1. 函数缺少返回值?这个什么意思啊?
2. 直接把值先正序放到列表里 然后在把列表倒序 在打印这个列表 ...

这是递归调用,后面会学到的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-9 22:12:28 | 显示全部楼层
昨非 发表于 2021-4-9 22:08
这是递归调用,后面会学到的

感谢 大佬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-20 06:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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