我开始用python制作一个不和谐的机器人。我要做的是为服务器的所有成员建立一个积分系统。
我已经设置了一个“游戏”,您可以在0-9之间猜一个数字,如果正确,它将说“正确”。我需要为服务器上的每个人设置一个points变量,以便每个人都可以玩。我可以在文件的顶部设置点变量,但是每当我重新启动bot时,它将重置为0。也许我可以将所有内容保存到文本文件中并从中读取?
if message.content.startswith('!gamble'):
if len(message.content) != 9:
msg = 'Improper command form' + str(len(message.content))
await client.send_message(message.channel, msg)
return
num = randint(0,9)
guess = message.content[8]
if str(num) == str(guess):
msg = 'You win! You guessed ' + str(guess) + ' and the number was ' + str(num)
await client.send_message(message.channel, msg)
else:
msg = 'You lost :(. You guessed ' + str(guess) + ' and the number was ' + str(num)
await client.send_message(message.channel, msg)
此部分正常工作。我可以轻松地在顶部添加一个变量,并在每次有人正确输入时添加一个点,但是随后它将回到设置的位置。您会如何建议呢?
答案 0 :(得分:1)
您必须将其写入文本文件。
由于在程序运行时会将程序加载到计算机的RAM中,因此无法在Python(或我所知的任何编程语言)中保存持久变量。操作系统为您的程序分配了该内存,一旦程序运行完毕,它还会收回所有内存,因此,下次运行将不会保留任何数据。
如果您仅打算在该项目中使用Python,建议您使用pickle
模块以获取简单的解决方案。此处更多信息:Python 3.7.2 docs,Python 2.7.15 docs
答案 1 :(得分:0)