首页 > 解决方案 > 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”异常。如果有必要,我很乐意提供我的其余代码,只包括这一点,因为它似乎是我遇到问题的地方。如果你能帮忙,让我知道我做错了什么,以及如何纠正它!提前谢谢各位!

标签: pythonpython-3.x

解决方案


终于破解了!更改了以下代码,然后宾果游戏!

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

推荐阅读