python之ATM机存取款转账脚本

#1.用户注册
def register():
    uname = input('输入用户名[注册]:')
    password = input('输入密码[注册]:')
    yue = 1000
    isok = True
    for us in users:
        if uname == us[0]:
            print('用户名已存在')
            isok = False
            break
    if isok == True:
        users.append([uname, password, yue, []])
        print(f'恭喜注册成功\n{users}')

#2.用户登录
def login():
    uname = input('输入用户名[登录]:')
    password = input('输入密码[登录]:')
    isok = False  # 定义False为未登录状态
    global ix  # 定义-1未一个不存在的索引号,便于后续在列表中搜索元素
    for i in range(0, len(users)):
        if uname == users[i][0] and password == users[i][1]:
            print('登录成功')
            isok = True
            ix = i
            break
    if isok == True:
        print(f'恭喜{users[ix][0]}登录蜗牛银行'.center(40, '='))
        service()
    else:
        print('登录失败,账户或密码错误')

#3.查看余额
def balance():
    print(f'用户<<{users[ix][0]}>>的余额为:{users[ix][2]}元')

#6.取款
def withdraw():
    money = int(input('请输入取款金额:'))
    if money > users[ix][2]:
        print(f'余额不足,当前余额{users[ix][2]}元')
        print('请选择业务菜单'.center(40, '='))
    else:
        users[ix][2] = users[ix][2] - money
        today = datetime.datetime.today().strftime('%y-%m-%d %H:%M:%S')
        print(f'取款{money}元,当前余额:{users[ix][2]}元,{today}')
        users[ix][3].append(f'{today},取款{money}元')

#4.存款
def save():
    money = int(input('请输入存款金额:'))
    users[ix][2] = users[ix][2] + money
    today = datetime.datetime.today().strftime('%y-%m-%d %H:%M:%S')
    print(f'存款{money}元,当前余额:{users[0][2]}元,{today}')
    users[ix][3].append(f'{today},存款{money}元')

#5.转帐
def transfer():
    uname = input('请输入需要转账的用户名:')
    isok = True
    for n in range(len(users)):
        if uname == users[n][0] and uname != users[ix][0]:
            money = int(input('请输入需要转账的金额:'))
            password = input('请输入转账密码:')
            if money > int(users[ix][2]) and password == users[ix][1]:  # 判断转账金额小于余额
                print('转账金额大于账户余额,转账失败')
            elif money <= int(users[ix][2]) and password == users[ix][1]:  # 判断转账金额大于余额
                today = datetime.datetime.today().strftime('%y-%m-%d %H:%M:%S')
                print(f'转账成功,{users[ix][0]}账户支出{money}元,当前账户余额为{users[ix][2] - money}元,{today}')
                print(f'收款成功,{users[n][0]}账户收款{money}元,当前账户余额为{users[n][2]+money}元,{today}')
                users[ix][3].append(f'{today},向{uname}转账{money}元')
                users[n][3].append(f'{today},{users[ix][0]}向你转账{money}元')
            else:
                print('转账密码错误,请重新输入')
            isok = True
            break
    else:
        print('用户不存在,请重新输入')

#6.打印流水
def stream():
    uname = input('请输入用户名:')
    password = input('请输入密码:')
    if uname == users[ix][0] and password == users[ix][1]:
        today = datetime.datetime.today().strftime('%y-%m-%d %H:%M:%S')
        print(f'{today},流水情况如下:\n{users[ix][3]}')
    else:
        print('账户密码错误,请重新输入')


import datetime
users=[ ["小张","111",3000,['2022-06-24 15:16:00 取款500元','2022-06-24 18:01 存取1000元']] ,["小刘","222",2000,[]]]
ix=-1
#1.开始界面
def start():
    print('欢迎来到蜗牛ATM'.center(40, '*'))
    while True:
        print('请选择操作菜单'.center(40, '*'))
        print('1.登录\t2.注册\t3.退卡'.center(36, '*'))
        num = int(input('请输入你的操作选项:'))
        if num == 1:
            print('用户登录'.center(40, '-'))
            login()
        elif num == 2:
            print('用户注册'.center(40, '-'))
            register()
        elif num == 3:
            print('请收好卡片,欢迎下次使用')
            break
        else:
            print('输入无效,请重新选择')

#2.业务界面
def service():
    while True:
        print('请选择业务菜单'.center(40, '='))
        print(f'1.查余额\t2.存款\t3.取款\t4.转账\t5.查看流水\t6.返回')
        num1=int(input('请输入业务编号:'))
        if num1 == 1:
            print('1.查余额'.center(40, '-'))
            balance()
        elif num1 == 2:
            print('2.存款'.center(40, '-'))
            save()
        elif num1 == 3:
            print('3.取款'.center(40, '-'))
            withdraw()
        elif num1 == 4:
            print('4.转账'.center(40, '-'))
            transfer()
        elif num1 == 5:
            print('5.查看流水'.center(40, '-'))
            stream()
        elif num1 == 6:
            print('6.返回'.center(40, '-'))
            break
        else:
            print('输入无效,请重新选择')

if __name__ == '__main__':
    start() #开始界面
    # service() #业务界面
    # register() #用户注册
    # login() #用户登录
    # balance() #查看余额
    # withdraw() #取款
    # save() #存款
    # transfer() #转账
    # stream() #打印流水
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值