python导入栈包

项目场景:

最近刚刚学完了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))

出现报错
python导入栈包_第1张图片


原因分析:

经过分析是就是第一行栈模块导入有问题,但是这个课程中说有相应的模块供下载,我也没找到在哪里,如果有同学在学习一样的课程,希望可以多多交流。
这是我所学习的课程。
python导入栈包_第2张图片


解决方案:

其实只要自己写一个类形成导包就可以

from pythonds.basic.stack import Stack

通过观察这一行导入代码,博主找到了方法。
在写好的进制转换的.py文件下创建pythonds文件夹
在这里插入图片描述
进去在创建一个basic文件夹。
python导入栈包_第3张图片
进入在创建一个 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)

python导入栈包_第4张图片python导入栈包_第5张图片
保存之后就可以运行利用栈实现的进制转换了。

python导入栈包_第6张图片
对于一个小白来说,一个导入折腾了一个多小时,希望能帮助到以后的小白。

你可能感兴趣的:(python)