Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.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 为什么这个代码不能很好地工作?_Python - Fatal编程技术网

Python 为什么这个代码不能很好地工作?

Python 为什么这个代码不能很好地工作?,python,Python,我有第一部分要做,但当谈到第二部分时,它说我必须在它里面有一个int。这是错误消息: #This will import time, so that I can break between lines import time import random import os #This will open the file, and will allow me to print it out words =open("Words.txt", "r+") print(words.read()) #T

我有第一部分要做,但当谈到第二部分时,它说我必须在它里面有一个
int
。这是错误消息:

#This will import time, so that I can break between lines
import time
import random
import os
#This will open the file, and will allow me to print it out
words =open("Words.txt", "r+")
print(words.read())
#This sets the different words to variables
x = 0
y = 0
z = 0
grid = 0

for i in words:
     list_of_words[x] = i.rstrip()
     x = x +1
     grid = [words[i:i + 3] for i in range(0, len(words), 3)]
for x,y,z in grid:
     print(x,y,z)
#This will close the word file
words.close
回溯(最近一次呼叫最后一次):
文件“C:\Users\Jamie\Documents\Jamie\coomation\Computing\Coureswork\Computer Science Courseword real.py”,第18行,在
对于网格中的x、y、z:
TypeError:“int”对象不可编辑

您得到的错误是因为
网格
0
(您将其初始化为),而不是在第一个循环中为该名称分配列表理解时成为列表

该循环不会做任何事情,因为您已经使用了程序顶部附近的
words.read()
文件
words
。对文件进行迭代没有任何作用,因为您已经到达了末尾。要再次读取文件,您需要关闭并重新打开它,或者使用
words.seek(0)
回放您在文件中的位置。或者更好的是,如果你不需要的话,不要把整件事读成一个字符串


请注意,即使在通过读取文件解决问题之后,您也会遇到其他问题。例如,您从未定义过单词列表,因此这将导致异常。您还试图在分配给
网格的列表中分割文件。这是不合法的。

为什么您要初始化
grid
,稍后您会将列表理解分配给它,如
0
?那只是自找麻烦。还要注意的是,当你到达
for i in words
时,你已经阅读了整个文件,因此没有什么可以重复的了。对,基本上,我必须用文件中的5个字母单词制作一个3乘3的网格,然后我还要把它们放进变量中,这些就是我试图放进网格中的变量;如果
grid
将成为一个列表,为什么不从
grid=[]
开始呢?好的,谢谢你的帮助,我已经做好了,下次不会出现错误消息,顺便说一句,尝试按照中的规则来获得一个不太可能吸引反对票的问题。谢谢你的帮助。现在工作正常。我修改了代码,现在我得到了3乘3的网格
Traceback (most recent call last):
  File "C:\Users\Jamie\Documents\Jamie\Homework\Computing\Coureswork\Computer Science Courseword real.py", line 18, in <module>
    for x,y,z in grid:
TypeError: 'int' object is not iterable