呵呵哒1 发表于 2021-2-11 10:41:12

为啥这个函数返回值是None呢,明明return(answer)了啊(用递归编写十进制转二进制)

def ten_two(num, list1 = [], judge = 1):
    if num < 0:
      judge = 0
      num = abs(num)
    if num // 2 == 0:
      list1.append('1')
      list1.append('b')
      list1.append('0')
      if judge == 0:
            list1.append('-')
      answer = str()
      while list1:
            answer += str(list1.pop())
      print(answer)
      return(answer)
    else:
      rem = num % 2
      num = num // 2
      list1.append(rem)
      ten_two(num, list1, judge)

num = int(input("请输入要转换的数字:"))
print(ten_two(num))


还请大佬们帮我看看,谢谢辽!!!

逃兵 发表于 2021-2-11 11:29:49

第二十行少打个return
def ten_two(num, list1 = [], judge = 1):
    if num < 0:
      judge = 0
      num = abs(num)
    elif num // 2 == 0:
      list1.append('1')
      list1.append('b')
      list1.append('0')
      if judge == 0:
            list1.append('-')
      answer = str()
      while list1:
            answer += str(list1.pop())
      return answer
    else:
      rem = num % 2
      num = num // 2
      list1.append(rem)
      return ten_two(num, list1, judge)


   
num = int(input("请输入要转换的数字:"))
print(ten_two(num))

peipur 发表于 2021-2-11 15:44:36

第十七行的rem是干什么用的

呵呵哒1 发表于 2021-2-11 16:54:23

peipur 发表于 2021-2-11 15:44
第十七行的rem是干什么用的

就是储存单次求余的结果鸭

呵呵哒1 发表于 2021-2-11 16:55:09

逃兵 发表于 2021-2-11 11:29
第二十行少打个return

感谢哈!
页: [1]
查看完整版本: 为啥这个函数返回值是None呢,明明return(answer)了啊(用递归编写十进制转二进制)