利用目前学的流程控制写的

'''
ATM机
需求:
1.登陆
    输入账号输入密码
    每日只有3次登陆密码错误的机会,超过3次禁止登陆
2.查询余额
3.存款
4.取款
5.转帐
6.退出
'''
infos = [
    {'name':'jack','pwd':'123','yue':0},
    {'name':'bran','pwd':'123','yue':0},
    {'name':'egon','pwd':'123','yue':0},
]

# 禁止登陆
ban = False
# 登陆状态
login_state = False
# 账号密码错误次数
login_num = 0
# 菜单 choice
choice = 0
# 输入的用户名
name = ''
# 输入的密码
pwd = ''
# 余额
yue = 0

while ban == False:
    # 登陆
    while login_state == False:
        # 登陆
        name = input('请输入账号:')
        pwd = input('请输入密码:')

        # 查询账号密码是否正确
        for info in infos:
            if name == info['name'] and pwd == info['pwd']:
                print('登陆成功!')
                login_state = True
                yue = info['yue']
                break
        # 如果没有账号密码不正确则 运行下面的代码
        if login_state == False:
            login_num += 1
            print('账号密码错误!请重新输入!剩余次数 %s' % (3 - login_num))
            if login_num == 3:
                print('今日登陆错误次数超限,请明日再来')
                ban = True
                break
    # 打印菜单
    if login_state == True and choice == 0:
        print('''
        1 查询
        2 存款
        3 转帐
        4 取款
        5 退出
        ''')
        choice = int(input('请输入操作状态:'))

    # 查询
    if login_state == True and choice == 1:
        print('%s 账户的余额为 %s ¥' % (name,yue))
        choice = 0

    # 存款
    if login_state == True and choice == 2:
        money = int(input('请输入你的金额:'))
        for info in infos:
            if name == info['name']:
                info['yue'] += money
                yue += money
                print('%s 账户存入 %s ¥' % (name,money))
        choice = 0
    # 转帐:
    if login_state == True and choice == 3:
        to_state = 0 # 1:成功 2:余额不足
        to_num = 0
        while to_state == 0:
            to_name = input('请输入转入的用户名:')
            # 判断 用户是否存在
            for info in infos:
                if to_name == info['name']:
                    money = int(input('请输入转帐的金额:'))
                    # 判断自己账户的金额是否足够
                    if yue >= money:
                        info['yue'] += money
                        yue -= money
                        print('你给 %s 用户成功转入 %s ¥'%(to_name,money))
                        to_state = 1
                        break
                    else:
                        print('你的余额不足,请充值后再转帐')
                        to_state = 2
            if to_state == 1:
                break
            elif to_state == 2:
                break
            else:
                to_num += 1
                print('你输入的用户不存在,请重新输入:')
        choice = 0

    # 取款
    if login_state == True and choice == 4:
        money = int(input('请输入你的取款金额:'))
        # 判断输入的金额是否小于等于余额
        if money <= yue:
            print('请再出钞口取钞票吧!')
            yue -= money
            choice = 0
        else:
            print('你输入的金额大于你的余额,无法取款!')

    # 退出
    if login_state == True and choice == 5:
        break

python ATM机 案例代码的更多相关文章

  1. ATM机运行代码

    实现代码: import java.util.Scanner; public class Atm { public static void main(String[] args) { // TODO ...

  2. Python(ATM机low版)

    import osclass ATM: @staticmethod def regst(): while 1: nm = input('请输入你的名字:') mm = input('请输入你的密码:' ...

  3. 简单的小程序实现ATM机操作

    简单的小程序实现ATM机操作 代码如下: package Day06; import java.util.Scanner; public class TestAccount { public stat ...

  4. 简易ATM机

    简易ATM机(代码如下): /* * 功能:简易银行系统 */package day8; import java.util.Scanner; /** * * @FengYan Huang Admini ...

  5. 模块购物商城和ATM机代码:

    http://outofmemory.cn/python/video/let-us-python/ python为程序员服务  快来加入群[python爬虫交流群](群号570070796),发现精彩 ...

  6. python实现atm机基本操作及购物车

    一.需求分析 ATM机要为用户提供转账,提现,还款,付款,消费流水,操作记录等操作接口 ATM机要为管理员提供创建用户,冻结解冻,修改额度的功能 ATM机管理员认证使用装饰器来实现 购物车要提供管理员 ...

  7. python模块使用案例

    python模块使用案例 一.使用MySQLdb模块代码示例: # 导入 MySQLdb模块 import MySQLdb # 和服务器建立链接,host是服务器ip,我的MySQL数据库搭建在本机, ...

  8. 模拟ATM机银行系统

    淄博汉企Java基础考核项目 模拟银行自助终端系统 一. 本系统模拟银行用户使用ATM机开户.查询.存款.取款功能,要求使用java语言编程实现. 说明: 1. 对于数据输入异常,可使用java异常处 ...

  9. python + hadoop (案例)

    python如何链接hadoop,并且使用hadoop的资源,这篇文章介绍了一个简单的案例! 一.python的map/reduce代码 首先认为大家已经对haoop已经有了很多的了解,那么需要建立m ...

随机推荐

  1. 20.发送http请求服务 ($http)

    转自:https://www.cnblogs.com/best/tag/Angular/ 服务从代码直接与服务器进行交互,底层是通过实现,与中http服务从AngularJS代码直接与Web服务器进行 ...

  2. 2008R2域控环境中 应用组策略 实现禁用USB设备使用

    本文介绍如何在Windows Server 2008 AD中禁用客户端USB端口.本文使用的系统:Windows Server 2008 R2 企业版.域功能级别:Windows Server 200 ...

  3. python垃圾回收算法

    标准python垃圾回收器由两部分组成,即引用计数回收器和分代垃圾回收器(即python包中的gc module).其中,引用计数模块不能被禁用,而GC模块可以被禁用. 引用计数算法 python中每 ...

  4. Swift学习笔记(6)--字典

    1.定义 //1.基本定义 [key 1: value 1, key 2: value 2, key 3: value 3] var dict = ["name":"Xi ...

  5. Mysql学习总结(5)——MySql常用函数大全讲解

    MySQL数据库中提供了很丰富的函数.MySQL函数包括数学函数.字符串函数.日期和时间函数.条件判断函数.系统信息函数.加密函数.格式化函数等.通过这些函数,可以简化用户的操作.例如,字符串连接函数 ...

  6. 中科燕园GIS外包--移动GIS

    移动GIS恰逢其时 得益于移动智能终端的普及和移动互联网的发展,伴随着GIS技术的发展和应用的深入.越来越多的企业和普通消费者開始体会到移动GIS的巨大潜力和价值. 移动GIS轻便灵活,受众面广.随时 ...

  7. jq ---- 实现浏览器全屏

    // 点击进入全屏 方法. var fullscreen=function(){ elem=document.body; if(elem.webkitRequestFullScreen){ elem. ...

  8. ElasticSearch概述和定义

    福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号:   大数据躺过的坑      Java从入门到架构师      人工智能躺过的坑         Java全栈大联盟   ...

  9. MATLAB 最优化计算 (一)

    1,令多行命 —— 逗号 VS 分号 2,管理工作空间 —— who , whos , clear , save , load , length (向量显示其长度,矩阵显示行数与列数中的较大数)  s ...

  10. 如何监控和解决SQL Server的阻塞(1) (当前阻塞)

    1. 什么是"阻塞"? 阻塞是SQL数据库应用"锁"机制的一个副作用.当一个应用请求针对某个数据库对象(例如全表,某行数据, 或者是某个数据页)加锁后,那么这个 ...