Python: 收到语法错误
Python: getting a SyntaxError
这是我的代码
#Chose Grid size
m = int(input("Enter the width and length of the Grid: ",))
n = m
print("Your Grid will be",m,"x",n)
Grid = np.zeros((m+2,n+2))
#Grid filling in
i = 0
while(i <= 5*m):
i = i+1
Grid[randint(1,m), randint(1,n)] = 1
img = pl.imshow(Grid, cmap = 'PuRd', interpolation = 'none')
SecGrid = np.zeros((m+2,n+2))
SecGrid = Grid
#Main
for i in range(1,m):
for j in range(1,n):
#Nbr of entities
nbr = 0
for k in range(-1,1):
for l in range(-1,1):
nbr = nbr + Grid[i+k,j+l]
#cells that are alive
if Grid[i,j] == 1:
if nbr > 1 and nbr < 4:
then SecGrid[i,j] = 1
else SecGrid[i,j] = 0
#cells that are dead
else:
if nbr == 3:
then SecGrid[i,j] = 1
else SecGrid[i,j] = 0
这是我的错误
File "/Users/tryotest/Downloads/GameOfLife.py", line 32
then SecGrid[i,j] = 1
^
SyntaxError: invalid syntax
如错误 (SyntaxError
) 所示,您的语法有误。在 Python 中,if 语句构造为 if ... else ...
有关 if 语句的更多信息,请遵循 link.
https://docs.python.org/2/tutorial/controlflow.html
更一般地说,我建议阅读 Python 的一般教程,以便掌握整体语法。
if foo:
then
是不正确的 Python 语法。删除 then
。
它应该看起来像
if foo:
dosomething
else:
dosomethingelse
你做错了if...else
。这是更正后的代码:
#Chose Grid size
m = int(input("Enter the width and length of the Grid: ",))
n = m
print("Your Grid will be",m,"x",n)
Grid = np.zeros((m+2,n+2))
#Grid filling in
i = 0
while(i <= 5*m):
i = i+1
Grid[randint(1,m), randint(1,n)] = 1
img = pl.imshow(Grid, cmap = 'PuRd', interpolation = 'none')
SecGrid = np.zeros((m+2,n+2))
SecGrid = Grid
#Main
for i in range(1,m):
for j in range(1,n):
#Nbr of entities
nbr = 0
for k in range(-1,1):
for l in range(-1,1):
nbr = nbr + Grid[i+k,j+l]
#cells that are alive
if Grid[i,j] == 1:
if nbr > 1 and nbr < 4:
SecGrid[i,j] = 1
else:
SecGrid[i,j] = 0
#cells that are dead
else:
if nbr == 3:
SecGrid[i,j] = 1
else:
SecGrid[i,j] = 0
这是我的代码
#Chose Grid size
m = int(input("Enter the width and length of the Grid: ",))
n = m
print("Your Grid will be",m,"x",n)
Grid = np.zeros((m+2,n+2))
#Grid filling in
i = 0
while(i <= 5*m):
i = i+1
Grid[randint(1,m), randint(1,n)] = 1
img = pl.imshow(Grid, cmap = 'PuRd', interpolation = 'none')
SecGrid = np.zeros((m+2,n+2))
SecGrid = Grid
#Main
for i in range(1,m):
for j in range(1,n):
#Nbr of entities
nbr = 0
for k in range(-1,1):
for l in range(-1,1):
nbr = nbr + Grid[i+k,j+l]
#cells that are alive
if Grid[i,j] == 1:
if nbr > 1 and nbr < 4:
then SecGrid[i,j] = 1
else SecGrid[i,j] = 0
#cells that are dead
else:
if nbr == 3:
then SecGrid[i,j] = 1
else SecGrid[i,j] = 0
这是我的错误
File "/Users/tryotest/Downloads/GameOfLife.py", line 32
then SecGrid[i,j] = 1
^
SyntaxError: invalid syntax
如错误 (SyntaxError
) 所示,您的语法有误。在 Python 中,if 语句构造为 if ... else ...
有关 if 语句的更多信息,请遵循 link.
https://docs.python.org/2/tutorial/controlflow.html
更一般地说,我建议阅读 Python 的一般教程,以便掌握整体语法。
if foo:
then
是不正确的 Python 语法。删除 then
。
它应该看起来像
if foo:
dosomething
else:
dosomethingelse
你做错了if...else
。这是更正后的代码:
#Chose Grid size
m = int(input("Enter the width and length of the Grid: ",))
n = m
print("Your Grid will be",m,"x",n)
Grid = np.zeros((m+2,n+2))
#Grid filling in
i = 0
while(i <= 5*m):
i = i+1
Grid[randint(1,m), randint(1,n)] = 1
img = pl.imshow(Grid, cmap = 'PuRd', interpolation = 'none')
SecGrid = np.zeros((m+2,n+2))
SecGrid = Grid
#Main
for i in range(1,m):
for j in range(1,n):
#Nbr of entities
nbr = 0
for k in range(-1,1):
for l in range(-1,1):
nbr = nbr + Grid[i+k,j+l]
#cells that are alive
if Grid[i,j] == 1:
if nbr > 1 and nbr < 4:
SecGrid[i,j] = 1
else:
SecGrid[i,j] = 0
#cells that are dead
else:
if nbr == 3:
SecGrid[i,j] = 1
else:
SecGrid[i,j] = 0