yuandiyuandi123 发表于 2018-5-21 20:17:02

关于函数返回值的问题

本帖最后由 yuandiyuandi123 于 2018-5-21 20:18 编辑

def get_digits(n):
      list1 = []
      x = n
      def digits():
                nonlocal x
                if x<10:
                        list1.append(x)
                        print(list1)
                else:
                        list1.append(x%10)
                        print(list1)
                        x = x // 10
                        digits()
      digits()
      list2 = list1.reverse()
      return list2

a = get_digits(123456789)
print(a)

请问为什么在执行函数的时候,看不到打印的a呢   ???

记忆的欠片 发表于 2018-5-21 20:36:57

你好,我还是新手。
你可以自己下断点(变量赋值后打印出来)看一下这个程序的运行过程。看问题在哪

故梦L 发表于 2018-5-21 22:33:56

def get_digits(n):
    list1 = []
    x = n
    def digits():
      nonlocal x
      if x<10:
            list1.append(x)
            print(list1)
      else:
            list1.append(x%10)
            print(list1)
            x = x // 10
            digits()
    digits()
    list1.reverse()#修改这里,不能直接赋值
    list2 = list1
    return list2

a = get_digits(123456789)
print(a)

yuandiyuandi123 发表于 2018-5-21 22:36:12

故梦L 发表于 2018-5-21 22:33


看明白啦 谢谢~~
页: [1]
查看完整版本: 关于函数返回值的问题