用Python实现简单银行系统

介绍

这段代码模拟了一个简单的银行系统。在系统中,用户可以注册、登录和操作自己的银行账户。注册过程中,用户名必须是唯一的,且每个新注册的用户的初始余额都是0。登录功能验证用户的用户名和密码,只有验证通过的用户才能进一步操作他们的账户。登录后,用户可以查询自己的账户余额、存入或取出一定的金额。如果取款金额超过了账户余额,系统会提示“余额不足”。用户还可以更改其密码,但更改前需要验证旧密码是否正确。整体而言,这是一个基础的银行系统,主要用于演示如何使用Python进行基础的账户管理和交易操作。

代码

class BankSystem:
    def __init__(self):
        self.users = {}  # 用户名与密码的映射
        self.balances = {}  # 用户名与余额的映射

    def register(self, username, password):
        if username in self.users:
            print("用户名已经存在!")
            return
        self.users[username] = password
        self.balances[username] = 0  # 初始余额为0
        print("注册成功!")

    def login(self, username, password):
        if username not in self.users:
            print("用户不存在!")
            return False
        if self.users[username] != password:
            print("密码错误!")
            return False
        print("登陆成功!")
        return True

    def check_balance(self, username):
        # 返回指定用户的余额
        return self.balances[username]

    def deposit(self, username, amount):
        # 存款操作
        self.balances[username] += amount
        print(f"存款成功! 余额: {self.balances[username]}")

    def withdraw(self, username, amount):
        # 取款操作
        if amount > self.balances[username]:
            print("余额不足!")
            return
        self.balances[username] -= amount
        print(f"取款成功! 余额: {self.balances[username]}")

    def change_password(self, username, old_password, new_password):
        # 修改密码操作
        if self.users[username] != old_password:
            print("原密码错误!")
            return
        self.users[username] = new_password
        print("密码修改成功!")

def main():
    system = BankSystem()
    while True:
        print("\n--- 银行系统 ---")
        print("1. 注册")
        print("2. 登陆")
        print("3. 退出")
        choice = input("选择操作: ")

        if choice == "1":
            # 注册新用户
            username = input("输入用户名: ")
            password = input("输入密码: ")
            system.register(username, password)
        elif choice == "2":
            # 用户登陆
            username = input("输入用户名: ")
            password = input("输入密码: ")
            if system.login(username, password):
                while True:
                    print("\n--- 用户菜单 ---")
                    print("1. 查询余额")
                    print("2. 存款")
                    print("3. 取款")
                    print("4. 修改密码")
                    print("5. 返回")
                    user_choice = input("选择操作: ")
                    if user_choice == "1":
                        # 查询余额
                        print(f"余额: {system.check_balance(username)}")
                    elif user_choice == "2":
                        # 存款操作
                        amount = float(input("输入存款金额: "))
                        system.deposit(username, amount)
                    elif user_choice == "3":
                        # 取款操作
                        amount = float(input("输入取款金额: "))
                        system.withdraw(username, amount)
                    elif user_choice == "4":
                        # 修改密码
                        old_password = input("输入原密码: ")
                        new_password = input("输入新密码: ")
                        system.change_password(username, old_password, new_password)
                    elif user_choice == "5":
                        break
        elif choice == "3":
            # 退出系统
            print("谢谢使用!")
            break

if __name__ == "__main__":
    main()

代码解释

  1. 定义BankSystem

class BankSystem:

这个类代表一个简单的银行系统。


  1. 初始化函数__init__

def __init__(self): self.users = {} # 用户名与密码的映射 self.balances = {} # 用户名与余额的映射

当创建一个BankSystem对象时,这个函数会被自动调用。这个函数初始化了两个字典:users用于存储用户名和密码,balances用于存储用户名和他们的余额。


  1. 注册函数register

def register(self, username, password): if username in self.users: print("用户名已经存在!") return self.users[username] = password self.balances[username] = 0 # 初始余额为0 print("注册成功!")

此函数允许用户注册。如果用户名已存在,会打印一个消息。否则,它会在users字典中存储密码,并在balances字典中为该用户设置初始余额为0。


  1. 登录函数login

def login(self, username, password): if username not in self.users: print("用户不存在!") return False if self.users[username] != password: print("密码错误!") return False print("登陆成功!") return True

此函数检查用户是否存在以及密码是否正确。如果验证成功,返回True,否则返回False。


  1. 查询余额函数check_balance

def check_balance(self, username): # 返回指定用户的余额 return self.balances[username]

返回给定用户名的余额。


  1. 存款函数deposit

def deposit(self, username, amount): # 存款操作 self.balances[username] += amount print(f"存款成功! 余额: {self.balances[username]}")

增加指定用户的余额。


  1. 取款函数withdraw

def withdraw(self, username, amount): # 取款操作 if amount > self.balances[username]: print("余额不足!") return self.balances[username] -= amount print(f"取款成功! 余额: {self.balances[username]}")

从指定用户的余额中扣除一定数量。如果余额不足,则打印一个消息。


  1. 修改密码函数change_password

def change_password(self, username, old_password, new_password): # 修改密码操作 if self.users[username] != old_password: print("原密码错误!") return self.users[username] = new_password print("密码修改成功!")

此函数允许用户更改密码。首先,它验证旧密码是否正确。如果是,它将更新密码。


  1. 主函数main

def main():

这个函数是这个简单银行系统的主入口点。它提供了一个循环菜单,允许用户选择注册、登录或退出。


  1. 程序入口

if __name__ == "__main__": main()

这是Python程序的标准模式,意味着当这个脚本作为主程序运行时,main()函数会被调用。


运行图片

图片[1]-用Python实现简单银行系统

java版本的简单银行系统在这里

© 版权声明
THE END
喜欢就支持一下吧
点赞8赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容