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))