因此,我为hangman编写了一个程序,该程序可以访问输入文件,但是一旦输入它就无法访问它。
这是调用文件的功能
def getWord(filename):
print("Loading from file...")
inputFile = open(filename, 'r')
wordlist = inputFile.read().splitlines()
print(len(wordlist) + " lines loaded.")
return wordlist
filename = input("What file will the words come from? ")
wordlist = getWord(filename)
theWordLine = random.choice(wordlist)
game(theWordLine)
这是文件本身
person,Roger
place,Home
phrase,A Piece Of Cake
它给我的错误是这个
File "hangman.py' , line 77, in <module>
wordlist = getWord(filename)
File "hangman.py' , line 10, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'str'
有人可以帮我吗?
答案 0 :(得分:2)
错误状态:TypeError: unsupported operand type(s) for +: 'int' and 'str'
。这意味着您不能将+
与类型int
和某些类型str
一起使用。 len
函数返回一个int
。因此,您需要先将其转换为str
,然后才能将其与另一个str
应为print(str(len(wordlist)) + " lines loaded.")
而不是print(len(wordlist) + " lines loaded.")
您可能还希望使用字符串格式作为注释提及。如果您使用的是python 3.6或更高版本,则可以尝试使用f字符串:f'{len(wordlist)} lines loaded}'
。
答案 1 :(得分:0)
print(len(wordlist) + " lines loaded.")
导致您遇到问题,因为它试图将+
操作数应用于不同数据类型的变量。
您可以使用print("{} lines loaded".format(len(wordlist)))
来避免这种情况。
答案 2 :(得分:0)
使用print(len(wordlist), " lines loaded.")
代替print(len(wordlist) + " lines loaded.")
答案 3 :(得分:0)
与读取文件无关。读取错误:无法添加整数和字符串。
为什么会出现此错误?因为len()
返回整数,而不是字符串。您可以将len()
的返回值转换为字符串,也可以只使用f字符串:
f'{len(wordlist)} lines loaded}'