#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
我已经完成了第一部分工作,但是当谈到第二部分时,它说我必须有一个int
。这是错误消息:
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
答案 0 :(得分:2)
您获得的错误是因为grid
是0
(您将其初始化为),而不是在第一个循环中为该名称分配列表解析时成为列表
该循环从不执行任何操作,因为您已经在程序顶部附近使用words
words.read()
文件。迭代文件什么都不做,因为你已经在最后了。要再次读取文件,您需要关闭并重新打开它,或使用words.seek(0)
来回放文件中的位置。或者更好的是,如果你不需要,不要将整个内容读成字符串。
请注意,即使修复了阅读文件的问题,您也会遇到其他问题。例如,您从未定义list_of_words
,因此会导致异常。您还尝试将文件切片到您要分配给grid
的列表解析中。这不合法。