鱼C论坛

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

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

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

你的缩进不对。

  1. s = input("请输入测试字符串:")

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

  6.     else:
  7.         if len(stack)==0:
  8.             print("非法")
  9.             break
  10.         if c==')':            # 这里要缩进 else 里面
  11.             d='('            # 这里要缩进 else 里面
  12.         elif c==']':            # 这里要缩进 else 里面
  13.             d='['            # 这里要缩进 else 里面
  14.         elif c=='}':            # 这里要缩进 else 里面
  15.             d='{'            # 这里要缩进 else 里面

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

  22.     else:
  23.         print("非法")
复制代码
1648711047(1).jpg

最佳答案

查看完整内容

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

使用道具 举报

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

你的缩进不对。

  1. s = input("请输入测试字符串:")

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

  6.     else:
  7.         if len(stack)==0:
  8.             print("非法")
  9.             break
  10.         if c==')':            # 这里要缩进 else 里面
  11.             d='('            # 这里要缩进 else 里面
  12.         elif c==']':            # 这里要缩进 else 里面
  13.             d='['            # 这里要缩进 else 里面
  14.         elif c=='}':            # 这里要缩进 else 里面
  15.             d='{'            # 这里要缩进 else 里面

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

  22.     else:
  23.         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 编辑
  1. stack = []

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

  3. for c in s:
  4.     if c == '(' or c=='{' or c=='[':
  5.         stack.append(c)
  6.     else:
  7.         if len(stack)==0:
  8.             print("非法T_T")
  9.             break
  10.         
  11.         if c == ')':
  12.             d = '('
  13.         elif c == '}':
  14.             d = '{'
  15.         elif c == ']':
  16.             d = '['
  17.         
  18.         if stack.pop() != d:
  19.             print('非法T_T')
  20.             break
  21. else:
  22.     if len(stack) == 0:
  23.         print("^o^合法")
  24.     else:
  25.         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, 2024-5-21 18:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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