pycharm的问题
# _*_ coding:utf-8 _*_
# file:pystack.py
#
class PyStack: # 堆栈类
def __init__(self, size=20):
self.stack = [] # 堆栈列表
self.size = size # 堆栈大小
self.top = -1 # 栈顶位置
def set_size(self, size): # 设置堆栈大小
self.size = size
def push(self, element): # 元素进栈
if self.is_full(): # 如果栈满则引发异常
raise StackException('PyStackOverflow')
else:
self.stack.append(element)
self.top += 1
def pop(self): # 元素出栈
if self.is_full():
element = self.stack[- 1]
self.top -= 1
del self.stack[- 1]
return element
else:
raise StackException('PyStackOverflow')
def a_top(self): # 获取栈顶的位置
return self.top
def empty(self): # 清空栈
self.stack = []
def is_empty(self): # 是否为空栈
if self.stack == -1:
return True
else:
return False
def is_full(self): # 是否为满栈
if self.top == self.size-1:
return True
else:
return False
class StackException(Exception): # 自定义异常类
def __init__(self, data):
self.data = data
def __str__(self):
return self.data
if __name__ == '_main_':
stack = PyStack() # 创建栈
for i in range(10):
stack.push(i) # 元素进栈
print(stack.a_top()) # 输出栈顶的位置
for i in range(10):
print(stack.pop()) # 元素出栈
stack.empty() # 清空栈
for i in range(21):
stack.push(i) # 此处引发异常
这个是书上介绍python堆栈的程序,但是我运行后没有出现想要的结果,而且不知道问题在哪?