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

'''
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. 【计算机视觉】基于Kalman滤波器的进行物体的跟踪

    预估器 我们希望能够最大限度地使用測量结果来预计移动物体的运动. 所以,多个測量的累积能够让我们检測出不受噪声影响的部分观測轨迹. 一个关键的附加要素即此移动物体运动的模型. 有了这个模型,我们不仅能 ...

  2. pig安装配置

    pig的安装配置很简单,只需要配置一下环境变量和指向hadoop conf的环境变量就行了 1.上传 2.解压 3.配置环境变量 Pig工作模式 本地模式:只需要配置PATH环境变量${PIG_HOM ...

  3. 利用Eventlog Analyzer分析日志

    利用EventlogAnalyzer分析日志 ManageEngineEventLogAnalyzer是一个基于Web技术.实时的事件监控管理解决方案,能够提高企业网络安全.减少工作站和服务器的宕机事 ...

  4. Atcoder B - Moderate Differences

    http://agc017.contest.atcoder.jp/tasks/agc017_b B - Moderate Differences Time limit : 2sec / Memory ...

  5. 新手教程:电信+广电(或其他运营商)双WAN设置

    由于国内不同运营商之间互联互通存在问题,假如用联通的线路去访问电信的站点那么会比较卡,反之亦然:所以如果两个WAN的线路不是同一个运营商,一般都是建议用户双WAN模式选为“智能路由”.经过本人测试发现 ...

  6. HDU 4431 Mahjong 模拟

    http://acm.hdu.edu.cn/showproblem.php?pid=4431 不能说是水题了,具体实现还是很恶心的...几乎优化到哭但是DFS(还加了几个剪枝)还是不行...搜索一直T ...

  7. 51nod 多重背包问题(二进制优化)

    有N种物品,每种物品的数量为C1,C2......Cn.从中任选若干件放在容量为W的背包里,每种物品的体积为W1,W2......Wn(Wi为整数),与之相对应的价值为P1,P2......Pn(Pi ...

  8. STM32CUBEF4 实现USB 虚拟串口

    一.stm32cubemx 生成工程后USB转串口出现黄色感叹号的问题 如下图所示,在stm32cubemx工程中选择usb转串口功能Communication Device Class (Virtu ...

  9. c++笔试题:不使用第三个变量来交换俩个变量的数值

    题目:将a 与 b的值互换. 通常我们的做法是(尤其是在学习阶段):定义一个新的变量,借助它完成交换.代码如下:      int a,b;      a; b:      int t;      t ...

  10. css+ js 实现圆环时钟

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...