|
发表于 2019-10-20 14:47:50
|
显示全部楼层
本帖最后由 jackz007 于 2019-10-20 17:25 编辑
有终点吗?
- def get_digits(n):
- n1 = str(n)
- if len(n1):
- result . insert(0 , int(n1[-1]))
- get_digits(int(n1[:-1]))
- result = []
- print get_digits(123456)
复制代码
- C:\Bin>python x.py
- Traceback (most recent call last):
- File "x.py", line 7, in <module>
- print get_digits(123456)
- File "x.py", line 5, in get_digits
- get_digits(int(n1[:-1]))
- File "x.py", line 5, in get_digits
- get_digits(int(n1[:-1]))
- File "x.py", line 5, in get_digits
- get_digits(int(n1[:-1]))
- File "x.py", line 5, in get_digits
- get_digits(int(n1[:-1]))
- File "x.py", line 5, in get_digits
- get_digits(int(n1[:-1]))
- File "x.py", line 5, in get_digits
- get_digits(int(n1[:-1]))
- ValueError: invalid literal for int() with base 10: ''
- C:\Bin>
复制代码
是有终点,不过,递归过程是因出错而终结,原因就是楼主的代码放弃或忽略了对此错误的预见和防范,而我修改的代码所针对的正是这个问题。从而也间接的回答了楼主提问能不能加 int() 的问题,答案很显然,当然是能加!
我的代码都是经过实际测试的,没有任何问题,print() 没有加括号是因为我使用 Python 2.7
3 楼那么气盛,怎么不给出建设性意见和解决方案?严重鄙视(注意:并非针对楼主)!!!
|
|