在Python中向文件追加变量

在Python中向文件追加变量,python,Python,我已经用python创建了一个刽子手游戏,稍后我会发布代码。我在代码中有变量,比如lifesleft和用户试图猜测的单词。我想做的是,一旦游戏结束,用户要么赢了,要么输了,我想把游戏的结果打印到一个文本文件中,这样用户就可以查看这个词是什么,他们还剩下多少生命。正如您将在代码中看到的那样,可以用作猜测单词的单词目前是从名为hangman.txt的文本文件中读取的 import random guessed_letters = '' lives_remaining = 15 turns = 10

我已经用python创建了一个刽子手游戏,稍后我会发布代码。我在代码中有变量,比如lifesleft和用户试图猜测的单词。我想做的是,一旦游戏结束,用户要么赢了,要么输了,我想把游戏的结果打印到一个文本文件中,这样用户就可以查看这个词是什么,他们还剩下多少生命。正如您将在代码中看到的那样,可以用作猜测单词的单词目前是从名为hangman.txt的文本文件中读取的

import random
guessed_letters = ''
lives_remaining = 15
turns = 10


try:
    f = open('hangman.txt', 'r')
    words = f.read().splitlines()
    f.close()

except IOError:
    print("Error, file does not exist")
    exit()

a = open('results.txt', 'w')
a.write('the resulst of hangman are')
a.close()

def pick_a_word():
    wordposition=random.randint(0,len(words)-1)
    return words[wordposition]
word = pick_a_word()
length = len(word)
print "word is", length,
print ("letters long")
print '_ ' * length

def get_guess():
    guess = raw_input('Guess a letter')
    return guess

guesses = ''
turns = 15
used = []

while turns > 0:
    failed = 0

    for char in word:
        if char in guesses:
            print char,

        else:
            print "_",
            failed += 1

    if failed == 0:
        print "you won"

        break
    print

    guess = raw_input("guess a character:")

    guesses += guess

    if guess not in word:

        turns -= 1
        print "wrong"

        print "you have", + turns, 'more guesses'

        if turns == 0:

            print "You loose"

b = open('results.txt', 'a')
b.write('the new word was' + word + 'The lives you had left were:' + turns)
b.close()
代码当前运行正常,直到游戏结束,然后打印此错误消息

Traceback (most recent call last):
  File "/Hangman/hangmanAppend.py", line 75, in <module>
    b.write('the new word was' + word + 'The lives you had left were:' + turns)
TypeError: cannot concatenate 'str' and 'int' objects
回溯(最近一次呼叫最后一次):
文件“/Hangman/hangmanAppend.py”,第75行,在
b、 写('新词是'+word+'你剩下的生命是:'+turns)
TypeError:无法连接'str'和'int'对象

包含一个整数,不能连接到字符串。只有字符串可以与其他字符串连接。因此,您需要将
turns
转换为string作为
str(turns)
。因此:

替换:

b.write('the new word was' + word + 'The lives you had left were:' + turns)
与:


会让你的工作完成

变量word具有字符串类型,turns具有int类型,这就是为什么会出现这些错误

将行更改为

b.write('the new word was' + word + 'The lives you had left were:' + str(turns))

它将把变量turn转换成字符串类型,然后您可以对它们进行编码。

Python101:
str(turns)
。你读到错误了吗?然后在
打印“you have”时丢失了
+
,+转身,“more猜测”
——这是一个前缀运算符,什么都不做,只会让事情变得混乱:-)谢谢你,一旦我得到足够的声誉,我会投票给你的答案哈哈
b.write('the new word was' + word + 'The lives you had left were:' + str(turns))
b.write('the new word was' + word + 'The lives you had left were:' + str(turns))