首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NameError:未定义名称“zombie_array”

NameError:未定义名称“zombie_array”
EN

Stack Overflow用户
提问于 2018-04-26 01:52:02
回答 1查看 108关注 0票数 1

下面给出了python代码(q4.py):

代码语言:javascript
复制
#!/usr/bin/env python


def DFS(j, visited, zombies, row):
    for k in range(row):
        if zombies[j][k] == '1' and visited[j][k] == False and visited[k][j] == False:
            visited[j][k] = True
            visited[k][j] = True
            DFS(k, visited, zombies, row)


def zombieCluster(zombies):
    row = len(zombies)
    col = len(zombies[0])
    count = 0
    if row == 0 or col == 0:
        return count
    visited = [[False for j in range(col)] for i in range(row)]
    for i in range(row):
        bol = False
        for j in range(row):
            if zombies[i][j] == '1' and visited[i][j] == False and visited[j][i] == False:
                visited[i][j] = True
                visited[j][i] = True
                DFS(j, visited, zombies, row)
                if bol == 0:
                    count += 1
                    bol = True
    return count


if __name__ == '__main__':
    # array input of zombie
    zombie_array = list()
    zombie_count = int(input())
    for i in range(int(zombie_count)):
        n = raw_input()
        zombie_array.append(str(n))

# zombie_array = ["1100" ,"1110", "0110", "0001"]
# print out the result
print(zombieCluster(zombie_array))

我正在为以下代码编写测试代码(test_q4.py):

代码语言:javascript
复制
# -*- coding: utf-8 -*-
import unittest
import os
import sys

BASEDIR = os.path.abspath(os.path.join(os.path.dirname(os.path.abspath(__file__)), ".."))
sys.path.insert(0, BASEDIR)

from q4 import zombieCluster


class Test(unittest.TestCase):
    def testzombieCluster(self):
        zombie_array = ["1100", "1110", "0110", "0001"]
        expect = 2
        result = zombieCluster(zombie_array)
        self.assertEqual(result, expect)


if __name__ == '__main__':
     unittest.main()

但是,当我从控制台运行这个命令python test_q4.py时,它会产生一个错误:

代码语言:javascript
复制
Traceback (most recent call last):
  File "test_q4.py", line 9, in <module>
    from q4 import zombieCluster
  File "/home/rowle/Desktop/python/solution/q4.py", line 42, in <module>
    print(zombieCluster(zombie_array))
NameError: name 'zombie_array' is not defined

当我从源代码中删除print(zombieCluster(zombie_array))时,我的测试运行良好,但是如果删除这一行,我将看不到任何输出。

在这种情况下,我应该在测试代码中做什么?此外,如何测试源代码的函数?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-26 02:04:07

创建一个()并将代码如下所示:

代码语言:javascript
复制
def main():
    # array input of zombie
    zombie_array = list()
    zombie_count = int(input())
    for i in range(int(zombie_count)):
        n = raw_input()
        zombie_array.append(str(n))

    # zombie_array = ["1100" ,"1110", "0110", "0001"]
    # print out the result
    print(zombieCluster(zombie_array))


if __name__ == '__main__':
    main()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50033692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档