【问题标题】:Problem with using variable out of a function在函数中使用变量的问题
【发布时间】:2021-05-30 12:08:27
【问题描述】:

这段代码有问题:

import sys
sys.setrecursionlimit(300300)

(n,m) = tuple(map(int, input().split()))
G = [[] for _ in range(n+1)] 
odwiedzony = [False for _ in range(n+1)] 
odwiedzonyPonownie = [False for _ in range(n+1)]

for i in range(m):
    (a, b) = tuple(map(int, input().split()))
    G[a].append(b)
    G[b].append(a)

#global op

def dfs(v):
    #op = 0
    odwiedzony[v] = True
    for sąsiad in G[v]:
        if odwiedzony[sąsiad] == True and odwiedzonyPonownie[sąsiad] == False:
            odwiedzonyPonownie[sąsiad] = True
            print("tak")
            op += 1
            print(op)
            #print("op")
        elif sąsiad == v:
            print("V = sąsiad")
            #op = n
        else :
            dfs(sąsiad)

dfs(G[1][0])
if op/2 >= n :
    print("niedrzewo")
else:
    print("drzewo")

因为我需要使用变量“op”来检查“op”是否大于“N”。但我不能使用变量“op”——我需要添加它。 所以我决定使用类来解决这个问题,我尝试做这样的事情:

    import sys
sys.setrecursionlimit(300300)

(n,m) = tuple(map(int, input().split()))
G = [[] for _ in range(n+1)] 
odwiedzony = [False for _ in range(n+1)] 
odwiedzonyPonownie = [False for _ in range(n+1)]

for i in range(m):
    (a, b) = tuple(map(int, input().split()))
    G[a].append(b)
    G[b].append(a)

class cus():
    def __init__(self): 
        self.op = 0

    def dfs(self,v):
        odwiedzony[v] = True
        for sąsiad in G[v]:
            if odwiedzony[sąsiad] == True and odwiedzonyPonownie[sąsiad] == False:
                odwiedzonyPonownie[sąsiad] = True
                print("tak")
                self.op += 1
                print(self.op)
            elif sąsiad == v:
                print("V = sąsiad")
                self.op = n
            else :
                dfs(sąsiad)

c = cus()
c.dfs(G[1][0])
if c.op/2 >= n :
    print("niedrzewo")
else:
    print("drzewo")
But I have this mistake:

文件“路径”,第 17 行 自我.op = 0 TabError:缩进中制表符和空格的使用不一致 请帮忙!!!谢谢:)

【问题讨论】:

    标签: python function class variables self


    【解决方案1】:

    错误告诉您,您在代码中为 indentation 混合了制表符和空格,特别是在您设置 self.op = 0 的第 17 行。

    Python 对缩进非常敏感,强烈建议只使用空格。

    我的猜测是,您的编辑器从空格切换到制表符或相反,或者您使用不同的编辑器编辑了同一个文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-24
      • 1970-01-01
      • 2016-01-05
      • 2010-11-30
      • 1970-01-01
      • 1970-01-01
      • 2017-06-11
      • 2021-12-11
      相关资源
      最近更新 更多