10进制转8进制怎么转?

hi各位大佬好,我是最帅的小明哥,今天依旧是搬砖的晚上,想到今天的题目还没搞定,因而记录下来,

For Recommendation in Deep learning QQ Group 277356808

For deep learning QQ Second Group 629530787

I'm here waiting for you

从网上搜索到一个简版,如下:(修改语言后)

def ten2eight(num):if num==0:return numelse:j=num%8i=num//8ten2eight(i)print(j)print(ten2eight(32))
print(ten2eight(100))

直接执行上述脚本可见正确答案,但比较Low,还有None出现

4
0
None
1
4
4
None

1-去掉None

后来发现去不掉,因为执行时不满足条件相当于返回None,举例子如下:

>>> def func(num):
...     pass
... 
>>> print(func(8))
None

所以下面仍旧有None打印出来

def ten2eight(num):if num:j=num%8i=num//8ten2eight(i)print(j)print(ten2eight(36))
print(ten2eight(100))

留作坑。

2-class中函数不能用递归??

class Solution:def __init__(self):self.ans=''def ten2eight(self,num):if num:j=num%8i=num//8ten2eight(i)#这么做不对self.ans+=str(j)
sol=Solution()
sol.ten2eight(32)
print('result',sol.ans)$ python3 mycode.py 
4
result 0

更正后,可以正确执行了,如下:

class Solution:def __init__(self):self.ans=''def ten2eight(self,num):if num:j=num%8i=num//8self.ten2eight(i)self.ans+=str(j)
sol=Solution()
sol.ten2eight(302)
print('result',sol.ans)$ python3 mycode.py 
result 456

3-class另一种形式

class Solution:def ten2eight(self,num):self.ans=''def func(num):if num:j=num%8i=num//8func(i)self.ans+=str(j)func(num)return self.anssol=Solution()
res=sol.ten2eight(302)
print("result2",res)result2 456

那么受上面启发,上面的坑可填??还是不行哦,还是class中的参数可以。

def ten2eight(num):ans=''def func(num):if num:j=num%8i=num//8func(i)ans+=str(j)func(num)return ans
res2=ten2eight(698)
print("results",res2)Traceback (most recent call last):File "mycode.py", line 103, in res2=ten2eight(698)File "mycode.py", line 101, in ten2eightfunc(num)File "mycode.py", line 99, in funcfunc(i)File "mycode.py", line 99, in funcfunc(i)File "mycode.py", line 99, in funcfunc(i)File "mycode.py", line 100, in funcans+=str(j)
UnboundLocalError: local variable 'ans' referenced before assignment

愿我们终有重逢之时,而你还记得我们曾经讨论的话题。 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部