Peteryo01223 发表于 2020-9-28 13:47:45

关于:十进制转换为二进制,递归

本帖最后由 Peteryo01223 于 2020-9-28 13:56 编辑

原题目:
使用递归编写一个十进制转换为二进制的函数(要求采用“除2取余”的方式,结果与调用bin()一样返回字符串形式)。

标准答案之一:
def Dec2Bin(dec):
    result = ''
   
    if dec:
      result = Dec2Bin(dec//2)
      return result + str(dec%2)
    else:
      return result

print(Dec2Bin(62))

我的问题:
1. result = ''是不是 result=0 的意思啊?这个‘’的表述,没见过。
2. 双除号,dec//2,这是什么意思?不是转义吧?

LuLD 发表于 2020-9-28 13:53:52

单纯的看你代码跟上面的代码对比
有一个地方,在 if 判断那里

你的:return result + str(n/2)
你说的标准的:return result + str(n%2)

Peteryo01223 发表于 2020-9-28 13:56:49

LuLD 发表于 2020-9-28 13:53
单纯的看你代码跟上面的代码对比
有一个地方,在 if 判断那里



谢谢。

多问两个问题:
1. result = ''是不是 result=0 的意思啊?这个‘’的表述,没见过。
2. 双除号,dec//2,这是什么意思?不是转义吧?

LuLD 发表于 2020-9-28 14:00:31

Peteryo01223 发表于 2020-9-28 13:56
谢谢。

多问两个问题:


1.result='',''空字符的意思,将 空字符赋值给 result
2.
//        取整除 - 返回商的整数部分(向下取整)       
>>> 9//2
4
>>> -9//2
-5

Peteryo01223 发表于 2020-9-28 14:09:21

LuLD 发表于 2020-9-28 14:00
1.result='',''空字符的意思,将 空字符赋值给 result
2.
//        取整除 - 返回商的整数部分(向下取整 ...

页: [1]
查看完整版本: 关于:十进制转换为二进制,递归