23讲课后习题 bei_chushu未定义?
# 写一个函数get_digits(n),将参数n分解出每个位的数字#并按顺序存放到列表中。举例:get_digits(12345) ==>
def get_digits(num):
code1=
code2=[]
if num<10:
bei_chushu=code1(len(num)-2) #判断输入的数有几位,来选择对谁取余数,2位,code,3位对code
code2.append((num-num%bei_chushu)//bei_chushu)
return get_digits(num-num%bei_chushu)
code2.append(num-num%bei_chushu)
return code2
number=int(input("enter an interger:"))
result=get_digits(number)
print(result)
你的程序中,当num<10的时候,bei_chushu才被定义并赋值,若num>=10,bei_chushu是没有定义的。
你把问题想复杂了。何必从前向后计算,直接从个位开始不就可以了?那样就不用判断输入的num是几位数了。
list有两个函数是常用来添加元素的,你用的是append,是向后追加;还有一个insert,可以向任何位置添加。
这个题目,完全可以从个位开始,然后每次都用insert想最前面添加不就可以了?
#迭代方法
def get_digits(num):
s=[]
if num==0:
s=
while num:
s.insert(0,num%10)
num=num//10
return s
#递归方法
def get_digit(n):
s=[]
if n>10:
s=get_digit(n//10)
s.append(n%10)
else:
s.append(n)
return s
print(get_digits(0))
print(get_digits(9))
print(get_digits(12345))
print(get_digit(0))
print(get_digit(9))
print(get_digit(12345)) sunrise085 发表于 2020-3-23 21:13
你的程序中,当num=10,bei_chushu是没有定义的。
你把问题想复杂了。何必从前向后计算,直接从个位开始不 ...
# 写一个函数get_digits(n),将参数n分解出每个位的数字
#并按顺序存放到列表中。举例:get_digits(12345) ==>
def get_digits(num):
code=[]
if num>10:
code.insert(0,num%10)
return get_digits(num//10)
else:
code.insert(0,num)
return code
number=int(input("enter an interger:"))
result=get_digits(number)
print("result=",result)
我知道改的那个和你的程序还有一点区别,我的第一个return那,我觉得这么用也没错呀,但是结果不对 猪猪虾 发表于 2020-3-23 22:00
我知道改的那个和你的程序还有一点区别,我的第一个return那,我觉得这么用也没错呀,但是结果不对
关于递归,你发了好多帖子了。但是总是在问同样的问题。
不要贪多,贪多嚼不烂。需要好好地理解一下。
递归其实可以分两种,
一种类型:逐层深入,到最深层的时候返回,这一类型的特点就是在return处调用递归,例如你发的那个问年龄的帖子;
另一种类型:先逐层深入,到最深层有一个确切值,然后逐层返回,这一类型的递归的特点就是会将递归赋值给一个变量,比如我写的这个数字转换的递归。
建议你吧这几天你所提问的有关递归的帖子放到一起,好好研究一下。
就你现在这个问题,我已经和你说过好几次了。之前你好像发过一个帖子,说返回列表只有一个值。那个程序的错误和这个程序的错误一模一样。 猪猪虾 发表于 2020-3-23 22:00
我知道改的那个和你的程序还有一点区别,我的第一个return那,我觉得这么用也没错呀,但是结果不对
把递归吃透再往下学吧
https://fishc.com.cn/thread-159033-1-1.html sunrise085 发表于 2020-3-23 22:26
关于递归,你发了好多帖子了。但是总是在问同样的问题。
不要贪多,贪多嚼不烂。需要好好地理解一下。
...
好的,蟹蟹 zltzlt 发表于 2020-3-24 13:17
把递归吃透再往下学吧
https://fishc.com.cn/thread-159033-1-1.html
好的,蟹蟹
页:
[1]