hhjdsd 发表于 2020-3-31 22:28:07

课后作业求助

问题如下:
0. 使用递归编写一个十进制转换为二进制的函数(要求采用“取2取余”的方式,结果与调用bin()一样返回字符串形式)。
我的代码:
>>> def bin_1(n1):
        n2 = n1%2
        if n1 == 0:
                return 0
        elif n1 == 1:
                return 1
        else:
                n1 = n1//2
                return print(bin_1(n1),n2,sep='',end='')

       
>>> bin_1(10)
10None1None0
找不出问题,求助。

zltzlt 发表于 2020-3-31 22:31:31

需要返回而不是打印

>>> def bin_1(n1):
      n2 = n1%2
      if n1 == 0:
                return '0'
      elif n1 == 1:
                return '1'
      else:
                n1 = n1//2
                return bin_1(n1) + str(n2)

      
>>> bin_1(10)
'1010'
页: [1]
查看完整版本: 课后作业求助