最近刚刚学完了python以及爬虫,数据可视化等几个专题的练习,接受老师建议开始学习python结构数据预算,结果第一章一个栈就差点把我送走。
利用栈实现进制转换出现报错。
from pythonds.basic.stack import Stack
def divideby2(decNumber):
remstack=Stack()
while decNumber>0:
rem=decNumber%2
remstack.push(rem)
decNumber=decNumber//2
binString=""
while not remstack.isEmpty():
binString=binString+str(remstack.pop())
return binString
print(divideby2(42))
经过分析是就是第一行栈模块导入有问题,但是这个课程中说有相应的模块供下载,我也没找到在哪里,如果有同学在学习一样的课程,希望可以多多交流。
这是我所学习的课程。
其实只要自己写一个类形成导包就可以
from pythonds.basic.stack import Stack
通过观察这一行导入代码,博主找到了方法。
在写好的进制转换的.py文件下创建pythonds文件夹
进去在创建一个basic文件夹。
进入在创建一个 stack.py文件。
然后在输入创建栈类的代码。为了和课程吻合,我使用了可课程中给的代码。
class Stack(object):
def __init__(self):
# 创建一个空的栈
self.item = []
def push(self,item):
# 添加新元素到栈顶
self.item.append(item)
def pop(self):
# 弹出栈顶元素
return self.item.pop()
def peek(self):
# 返回栈顶元素
return self.item[len(self.item)-1]
def isEmpty(self):
# 检验是否为空
return self.item == []
def size(self):
# 返回栈的个数
return len(self.item)