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