Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在原子中得到一个错误,但如果我复制粘贴在Jupyter中就不会_Python_Jupyter Notebook_Atom Editor - Fatal编程技术网

Python 在原子中得到一个错误,但如果我复制粘贴在Jupyter中就不会

Python 在原子中得到一个错误,但如果我复制粘贴在Jupyter中就不会,python,jupyter-notebook,atom-editor,Python,Jupyter Notebook,Atom Editor,我正在努力学习Python。我目前正在使用Jupyter笔记本和Atom作为文本编辑器 这是我的代码: grid = [['.', '.', '.', '.', '.', '.'], ['.', 'O', 'O', '.', '.', '.'], ['O', 'O', 'O', 'O', '.', '.'], ['O', 'O', 'O', 'O', 'O', '.'], ['.', 'O', 'O', 'O', 'O', 'O'], ['O', 'O', 'O', 'O', 'O', '.']

我正在努力学习Python。我目前正在使用Jupyter笔记本和Atom作为文本编辑器

这是我的代码:

grid = [['.', '.', '.', '.', '.', '.'],
['.', 'O', 'O', '.', '.', '.'],
['O', 'O', 'O', 'O', '.', '.'],
['O', 'O', 'O', 'O', 'O', '.'],
['.', 'O', 'O', 'O', 'O', 'O'],
['O', 'O', 'O', 'O', 'O', '.'],
['O', 'O', 'O', 'O', '.', '.'],
['.', 'O', 'O', '.', '.', '.'],
['.', '.', '.', '.', '.', '.']]

for i in range(len(grid[i])):
    for l in range(0, len(grid)):
        if l < len(grid)-1:
            print(grid[l][i], end='')
        else:
            print(grid[l][i])

但是如果我在Jupyter中复制粘贴它,它就可以正常工作。我遗漏了什么?

无论是在IDE中还是在Jupyter中,它都不适用于我

它确实抱怨“i”,因为它不知道嵌套for循环的第一行中的“i”是什么

for i in range(len(grid[i])):
    for l in range(0, len(grid)):
        if l < len(grid)-1:
            print(grid[l][i], end='')
        else:
            print(grid[l][i])
所以对于范围内的“我”。。。这将是好的,如果它知道什么范围是

让我们来看看范围以及您是如何定义它的:

range(len(grid[i]))
因此,我可以看到您希望返回(len…)的范围

例如,范围(x)

你的x=len(网格[i])

什么是透镜。。。什么的莱恩

让我们看看len

grid[i]
什么是什么的网格

i网格

所以。。。我是什么

当然,这不是我从你的最高水平的。。。循环如果你遵循这个逻辑你会注意到Python编译器类似于人类无法理解什么是i


首先定义我。。。e、 g.i=5,那么你的代码就可以工作了

它的代码在Jupyter中工作,因为
i
是在同一个Jupiter笔记本中的其他单元格中定义的

我想这就是你想要做的:

grid = [['.', '.', '.', '.', '.', '.'],
        ['.', 'O', 'O', '.', '.', '.'],
        ['O', 'O', 'O', 'O', '.', '.'],
        ['O', 'O', 'O', 'O', 'O', '.'],
        ['.', 'O', 'O', 'O', 'O', 'O'],
        ['O', 'O', 'O', 'O', 'O', '.'],
        ['O', 'O', 'O', 'O', '.', '.'],
        ['.', 'O', 'O', '.', '.', '.'],
        ['.', '.', '.', '.', '.', '.']]

for row in range(len(grid)):
    for col in range(len(grid[0])):
        print(grid[row][col], end='')
    print()



>>>
......
.OO...
OOOO..
OOOOO.
.OOOOO
OOOOO.
OOOO..
.OO...
......

对于范围内的i(len(网格[i]):和范围内的l(0,len(网格)):的顺序似乎不正确。此外,考虑直接对列表项进行迭代,而不是使用索引变量(例如,在网格中为子窗体:<代码>:<代码> >)“它在Jupyter中工作得很好”,很可能您在另一个单元格中定义了<代码> i <代码>(或者它是在会话中定义的)。用新笔记本再试一次。你应该得到同样的错误。我确实理解你的观点,但是:-我如何告诉它为可能不同长度的不同行的每个值运行?-如果我复制粘贴它,为什么它在Jupyter中工作?
grid[i]
grid = [['.', '.', '.', '.', '.', '.'],
        ['.', 'O', 'O', '.', '.', '.'],
        ['O', 'O', 'O', 'O', '.', '.'],
        ['O', 'O', 'O', 'O', 'O', '.'],
        ['.', 'O', 'O', 'O', 'O', 'O'],
        ['O', 'O', 'O', 'O', 'O', '.'],
        ['O', 'O', 'O', 'O', '.', '.'],
        ['.', 'O', 'O', '.', '.', '.'],
        ['.', '.', '.', '.', '.', '.']]

for row in range(len(grid)):
    for col in range(len(grid[0])):
        print(grid[row][col], end='')
    print()



>>>
......
.OO...
OOOO..
OOOOO.
.OOOOO
OOOOO.
OOOO..
.OO...
......