python - Python 通过 txt 文件存储和访问信息
问题描述
我正在为我正在学习的课程编写一个赌博/骰子游戏程序,每周都会添加新的要求,我们必须实施新代码,而不会从根本上改变我们迄今为止编写的代码。我遇到问题的部分是:现在,如果用户退出(通过输入“0”作为他们的“赌注”),他们的“银行”的内容将保存到一个文本文件中,以便他们稍后可以恢复播放以相同数量的“奖金”。如果用户破产(游戏结束),下次他们运行程序时,他们的银行将重置为默认金额(500 美元)。当程序启动时,代码应该检查是否存在保存先前播放数据的文件(bank.txt);如果文件存在,bank.txt中的数字就是用户的“银行”;如果文件不存在,程序创建它并向用户的银行添加 500 美元。通过在这里和那里调整东西,我得到了部分代码可以工作(即,以 800 美元的银行存款退出,重新启动游戏并且它仍然存在),但我已经做了这么久(并且非常沮丧)我只是不知道我在做什么这里错了。
> `import os
import random
def main():
intro()
bank = check_bank()
show_bank(bank)
bet = bet_validation(bank)`
那是程序的开始,显然,我似乎无法正确的部分如下...如果我需要发布更多代码,那不是问题,只是其他一切似乎都可以正常工作(除了对于以下)
def check_bank():
try:
if os.path.isfile('./bank.txt') == True:
bank_file = open('bank.txt','r')
if float(bank_file.readline()) > 0.0:
bank = float(bank_file.readline())
return bank
else:
bank = 500.00
return bank
else:
bank_file = open('bank.txt','w')
bank_file.write(str(500.0))
bank = float(bank_file.readline())
bank_file.close()
return bank
except IOError:
print('IOError in check_bank')
except ValueError:
print('ValueError in check_bank')
except Exception as err:
print(err,'in check_bank')
finally:
bank_file.close()
任何和所有的帮助/建议/提示将不胜感激。当我启动程序时,我从“check_bank()”函数中得到一个“ValueError”异常。如果有必要,我很乐意提供我的其余代码,只包括这一点,因为它似乎是我遇到问题的地方。如果你能帮忙,请让我知道我做错了什么,以及如何纠正它!提前谢谢各位!
解决方案
终于破解了!更改了以下代码,然后宾果游戏!
def check_bank():
try:
if os.path.isfile('./bank.txt') == True:
bank_file = open('bank.txt','r')
bank = float(bank_file.readline())
if bank > 0:
return bank
else:
bank = 500.0
return bank
推荐阅读
- c# - 如何使其从文本文件中读取c#
- elixir - Flow中的并行处理不是并行的吗?
- amazon-web-services - 如何编写 yml 文件将烧瓶应用程序从 github 上传到 aws ec2 windows 实例上的 iis 服务器?
- c - C中的错误:“一元'*'的无效类型参数(具有'int')”,“来自不兼容的指针类型的赋值”
- sql - 一列中的组合超过另一列的分区 - BigQuery
- graphql - 盖茨比内容丰富的嵌入图像
- azure-iot-hub - 通过 REST API 在 azure DPS 中更新个人注册证书
- python - 嵌套 for 和 if 在列表推导中
- bash - 使用 bash 在远程服务器上执行多个命令
- javascript - 存储 dialogflow api 的代理 SessionsClient