鱼C论坛

 找回密码
 立即注册
查看: 1607|回复: 2

[已解决]Python代码疑问求助~~

[复制链接]
发表于 2019-11-6 17:49:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
class Stack:
    def __init__(self,X=[]):
        self.stack = []
       for x in X:
            self.push(x)


    def isEmpty(self):
        return not self.stack

    def push(self,obj):
        self.stack.append(obj)

    def pop(self):
        if not self.stack:
            print('栈为空!')
        else:
            self.stack.pop()

    def top(self):
        if not self.stack:
            print('栈为空!')
        else:
            print(self.stack[-1])

    def bottom(self):
        if not self.stack:
            print('栈为空!')
        else:
            print(self.stack[0])


提问:以上代码中,标红的两行有什么用,我把它删除了也是一样运行的啊~~
最佳答案
2019-11-6 18:01:22
能运行,不代表代码能正常工作。首先你要搞懂代码是干嘛用的。
这段代码明显就是栈的应用,就是让你对栈有更深的了解。
for x in X:
  self.push(x) #函数用来初始化栈 没有这段代码你的栈就是空的
有:
>>> s = '123456'
>>> b = Stack(s)
>>> b.bottom()
1
>>> b.top()
6
没有:
>>> s = '123456'
>>> b = Stack(s)
>>> b.bottom()
栈为空!
>>> b.top()
栈为空!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-11-6 18:01:22 | 显示全部楼层    本楼为最佳答案   
能运行,不代表代码能正常工作。首先你要搞懂代码是干嘛用的。
这段代码明显就是栈的应用,就是让你对栈有更深的了解。
for x in X:
  self.push(x) #函数用来初始化栈 没有这段代码你的栈就是空的
有:
>>> s = '123456'
>>> b = Stack(s)
>>> b.bottom()
1
>>> b.top()
6
没有:
>>> s = '123456'
>>> b = Stack(s)
>>> b.bottom()
栈为空!
>>> b.top()
栈为空!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2019-11-6 21:01:06 | 显示全部楼层
如果不写标红的代码,参数 X 就没有用了。代码的原意是如果有 X 参数 则先向栈推进 X 里的元素。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-19 21:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表