Python面向对象:银行(定义一个账户类,可以创建账户,存款,取款,查询余额,以及销户等操作)

系列文章目录


 Python 面向对象

文章目录

  • 系统列表文章目录
  • 前言
  • 一、面向对象是什么?
  • 二、定义类属性方法读写代码使用步骤
    • 1.定义类属性方法读写
    • 2.while循环登录和if语句选项读写
  • 总结

前言

定义类和属性方法,运用到面向对象里面一些基本特征:封装、继承、多态、抽象;

 Pyhon创始人:吉多 ‘魔法函数’ 查看所有的魔法函数dir(类名) 魔法方法 __init__ 初始化函数魔法方法 帮助我们解决属性冲突的问题 为实例对象设立独有的属性,在实例化时会自动的调用

一、面向对象是什么?

示例一:

面向对象,是把我们要做的事情当作一个整体,我们所关心的是这个整体,在整个整体上发生的是行为和属性,而相对的面向对象,所关心的不是这个整体,而是具体的行为和属性,一步一步怎么实现的调用哪些函数。

示例二:

面向对象是一个抽象的名词,更多结合自定义函数去使用,实现对函数的封装。

面向对象:类、属性、方法

类(代指):人的概念>就是不同的人钟

属性(代指):名字、年龄、性别 静态

方法(代指):吃饭睡觉 动态

二、使用步骤

1.定义类属性方法读写

代码如下(第一部分):

class Aa:  # 账户类
    初始化方法:

    def __init__(self, name, passworld, money=0): # __init__是一个魔法方法
        self.name = name
        self.passworld = passworld
        self.money = money

    # 存款

    def deposit(self, passworld, money):
        if self.passworld == passworld:

            if isinstance(money, (int, float)) and money >= 0:
                self.money += money
                user_list[users] = self.money
                print(f'存入金额{money},账户余额为{self.passworld}')
        else:
            print('密码错误!')

    # 取款

    def draw_money(self, passworld, money):
        if self.passworld == passworld:
            if isinstance(money, (int, float)) and money >= 0:
                if self.money - money >= 0:
                    self.money -= money
                    user_list[users] = self.money
                    print(f'取出金额{money},账户余额为{self.money}')

                else:
                    print(f'可取出的金额仅为{self.money},不可透支取出')

        else:
            print('密码错误!')

    # 查询余额

    def query(self, passworld):
        if self.passworld == passworld:
            print(f'账户余额为{self.money}')

        else:
            print('密码错误!')

2.while循环登录和if语句选项读写

代码如下(第二部分):

# 创建账户

user_list = {'laohu': 0}  # 余额
pw_list = {'laohu': '123'}  # 密码


# 用嵌套while循环写登录

while True:

    users = input('输入操作的用户,q退出:')
    if users == 'q':
        break
    elif users in user_list.keys():

        while True:
            choose = input('现在你有五个选择:1.存款 2.取款 3.查询 4.注销账户 \n请选择:')

            # 用if语句写选项  
            if choose == '1':
                user = Aa(users, pw_list[users], user_list[users]) # 创建一个用户:user 
                print('*' * 25, '查询时请输入密码和金额', '*' * 25) # 美观数据的*号分割提示符
                passworld = input('密码:')
                money = int(input('金额:'))
                user.deposit(passworld, money)

            elif choose == '2':
                user = Aa(users, pw_list[users], user_list[users])
                print('*' * 25, '查询时请输入密码和金额', '*' * 25)
                passworld = input('密码:')
                money = int(input('金额:'))
                user.draw_money(passworld, money)

            elif choose == '3':
                user = Aa(users, pw_list[users], user_list[users])
                print('*' * 30, '查询时请输入密码', '*' * 30)
                passworld = input('密码:')
                user.query(passworld)

            elif choose == '4':

                if user_list[users] != 0:
                    print('*' * 25, '查询时请输入密码和金额', '*' * 25)
                    print(f'剩余金额{user_list[users]}真的要注销吗?')
                    Yes_No = input('强制注销按Y,不需要按N取出剩余金额:')
                    if Yes_No == 'Y':
                        lose = user_list.pop(users)
                        print(f'{users}注销成功,损失金额{lose}元')
                        break
                    elif Yes_No == 'N':
                        money = int(input('金额:'))
                        user.draw_money(pw_list[users], money)
                else:
                    user_list.pop(users)
                    print(f'{users}注销成功!')
                    break


            elif choose == '5':
                break

            else:
                print('你输入的真的是可选操作?')



        else:
            user = input('用户不存在,需要注册\n请输入想要注册的账户,q取消注册:')

            if user == 'q':
                continue
            else:
                pw = input('注册的密码:')
                user_list[user] = 0
                pw_list[user] = pw
                print(f'{user}注册成功!\n')

总结

以上就是今天要讲的内容,主要以银行的流程写的一个面向对象知识模块:定义账户类,用__init__魔法方法,进行传参,要有三个参数,另外还要三个方法 “存款”、”取款”、”查询余额”,然后定义user用户名用while循环写进行登录界面,if语句进行选项读写,还加上美观的分隔符,最后编写注册成功的代码即可完成。所以本文仅仅简单介绍了面向对象的一些代码读写使用,而面向对象是python基础中一个缺一不可的知识点模块,它提供了大量能python语言知识使我们快速便捷地能够用那些特征来处理数据的函数和方法的读写。

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
扎眼的阳光的头像扎眼的阳光普通用户
上一篇 2023年6月25日
下一篇 2023年6月25日

相关推荐