python用栈实现数字进制转换

python用栈实现进制转换

 1 #-*- encoding: utf-8 -*-
 2 '''
 3 stack.py.py
 4 Created on 2019/11/7 9:05
 5 Copyright (c) 2019/11/7, SingSong.
 6 @author: SunSong
 7 '''
 8 
 9 class Stack:
10     def __init__(self):
11         self.items = []
12     def push(self,item):
13         self.items.append(item)
14     def pop(self):
15         return self.items.pop()
16 
17     def peek(self):
18         return self.items[len(self.items) -1]
19 
20 if __name__ == '__main__':
21 
22    
23     my_stack_num = Stack()
24     """
25     a:10进制的数。
26     b:需要转换为几进制。
27     """
28     def test(a,b):
29         while (a!=0):
30             c=a%b
31             a=a//b
32 
33 
34             # print('a= %s,b= %d' % (a,c))
35             my_stack_num.push(c)
36         # print(my_stack_num.items.__len__())
37         list =[]
38         while (my_stack_num.items.__len__()>0):
39             print('my_stack_num.items %s' % (my_stack_num.items))
40             print('len %d ' % (my_stack_num.items.__len__()))
41 
42             list.append(my_stack_num.pop())
43             print('list ',list)
44         #将列表变为字符串,但是列表里面存在数字,需要转换一下,先把数字转换为字符串。
45         return "".join('%s' % id for id in list)
46   #10进制的1348转化为8进制的数。
47     print(test(1348,8))

猜你喜欢

转载自www.cnblogs.com/singsong-ss/p/11812013.html