子手代码无法访问其他文件

时间:2019-04-25 22:49:49

标签: python

因此,我为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'

有人可以帮我吗?

4 个答案:

答案 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}'