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