鱼C论坛

 找回密码
 立即注册
查看: 1210|回复: 9

[已解决]为什么这里会说我的变量d是未定义的

[复制链接]
发表于 2022-3-31 15:18:18 | 显示全部楼层 |阅读模式
3鱼币
最佳答案
2022-3-31 15:18:19
本帖最后由 isdkz 于 2022-3-31 15:30 编辑

你的缩进不对。
s = input("请输入测试字符串:")

stack=[]
for c in s:
    if c=='(' or c=='[' or c=='{':
        stack.append(c)

    else:
        if len(stack)==0:
            print("非法")
            break
        if c==')':            # 这里要缩进 else 里面
            d='('            # 这里要缩进 else 里面
        elif c==']':            # 这里要缩进 else 里面
            d='['            # 这里要缩进 else 里面
        elif c=='}':            # 这里要缩进 else 里面
            d='{'            # 这里要缩进 else 里面

        if stack.pop()!= d:            # 这里要缩进 else 里面
            print("非法")            # 这里要缩进 else 里面
            break                   # 这里要缩进 else 里面
else:
    if len(stack)==0:
        print("合法")

    else:
        print("非法")
1648711047(1).jpg

最佳答案

查看完整内容

你的缩进不对。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-31 15:18:19 | 显示全部楼层    本楼为最佳答案   
本帖最后由 isdkz 于 2022-3-31 15:30 编辑

你的缩进不对。
s = input("请输入测试字符串:")

stack=[]
for c in s:
    if c=='(' or c=='[' or c=='{':
        stack.append(c)

    else:
        if len(stack)==0:
            print("非法")
            break
        if c==')':            # 这里要缩进 else 里面
            d='('            # 这里要缩进 else 里面
        elif c==']':            # 这里要缩进 else 里面
            d='['            # 这里要缩进 else 里面
        elif c=='}':            # 这里要缩进 else 里面
            d='{'            # 这里要缩进 else 里面

        if stack.pop()!= d:            # 这里要缩进 else 里面
            print("非法")            # 这里要缩进 else 里面
            break                   # 这里要缩进 else 里面
else:
    if len(stack)==0:
        print("合法")

    else:
        print("非法")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-31 15:20:09 | 显示全部楼层
在你的图片我的确没有看到你申明变量d
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-3-31 15:21:21 | 显示全部楼层
小伤口 发表于 2022-3-31 15:20
在你的图片我的确没有看到你申明变量d

小甲鱼的答案里 也没有定义这个d啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-31 15:23:13 | 显示全部楼层
BlackWhite_idea 发表于 2022-3-31 15:21
小甲鱼的答案里 也没有定义这个d啊

不会把,你再好好看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-3-31 15:25:32 | 显示全部楼层
小伤口 发表于 2022-3-31 15:23
不会把,你再好好看看

刚一行一行的对过。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-31 15:26:14 | 显示全部楼层
BlackWhite_idea 发表于 2022-3-31 15:25
刚一行一行的对过。。

小甲鱼的那个代码在哪里,我去看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-31 15:27:56 | 显示全部楼层
小伤口 发表于 2022-3-31 15:23
不会把,你再好好看看

我也没看到你前面有强调d这个变量,只有i,而且说不定小甲鱼的答案是错的也说不定
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-3-31 15:38:12 | 显示全部楼层
本帖最后由 BlackWhite_idea 于 2022-3-31 15:40 编辑
stack = []

s = input("输入一个测试字符串:")

for c in s:
    if c == '(' or c=='{' or c=='[':
        stack.append(c)
    else:
        if len(stack)==0:
            print("非法T_T")
            break
        
        if c == ')':
            d = '('
        elif c == '}':
            d = '{'
        elif c == ']':
            d = '['
        
        if stack.pop() != d:
            print('非法T_T')
            break
else:
    if len(stack) == 0:
        print("^o^合法")
    else:
        print('非法T_T')

绝了这样又老跑非法去了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-31 15:40:29 | 显示全部楼层
BlackWhite_idea 发表于 2022-3-31 15:38
绝了这样又老跑非法去了

截个图看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-11 21:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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