《python 栈的两个应用举例》由会员分享,可在线阅读,更多相关《python 栈的两个应用举例(5页珍藏版)》请在金锄头文库上搜索。
1、数制转换:1. 硬编码实现#-coding:utf-8-N=input(Please input a number:)while(N): print * * N-=1N=input(输入十进制数字(换算为八进制):)stack=string8=while(N): #求余 stack.append(N%8) #求商 N=N/8 while(len(stack)0): string8+=str(stack.pop()print 转换为八进制:+string82. 构建stack类,来实现Stack1.py#-coding:utf-8-class Stack(object): def _init_(
2、self): self.items= def isEmpty(self): return self.items= def push(self,item): self.items.append(item) def pop(self): return self.items.pop() def GetTop(self): return self.itemslen(self.items)-1moshi.py#-coding:utf-8-import stack1shiyan=stack1.Stack()stringu=temp=input(请输入一个十进制数字:)while(temp): shiyan
3、.push(temp%8) temp=temp/8while(not shiyan.isEmpty(): stringu+=str(shiyan.pop()print 八进制为:+stringu括号匹配硬编码实现#-coding:utf-8-print *括号匹配* print 输入原则:每当你输入一个括号,你需要再输入一个,进行区分,例如:(,(,),)输入的可识别括号有(),strpp=raw_input(请输入一段括号表达式:)basestr=strpp.split(,)pstack=suoyin=(:),:,:for e in basestr: if (e=( or e= or e=): pstack.append(e) else: if len(pstack)=0: print 右括号多余 break else: if e=suoyinpstacklen(pstack)-1: pstack.pop() else: print 不匹配 print 右括号多余 breakif len(pstack)=0: print 匹配正确else: print 左括号多余