#__author: hasee
#date:  2018/1/16
# user_info.txt包含内容:
# zhangsan1 123456 3500
# zhangsan2 123456 4000
# zhangsan3 123456 4500
# zhangsan4 123456 5000
# zhangsan5 123456 5500
# zhangsan6 123456 6000
# zhangsan7 123456 6500
# zhangsan8 123456 7000
# zhangsan9 123456 7500

f = open('c:\\user_info.txt')
user_info = f.readlines()
print(user_info)
f.close()user = []
result = 0
while result != 1:# 1、程序提示用户输入账号print("请输入账号:")# 2、用户输入账号# 3、程序接收用户的输入name = input()# 4、程序提示用户输入密码print("请输入密码:")# 5、用户输入密码# 6、程序接收用户的输入password = input()# 7、程序对已经接收到的账号、密码进行校验# 7.1 程序先从文件中读取有效的账号、密码信息# 7.2 将接收到用户输入与文件中读出来的信息进行比较# 7.3 如果用户输入与文件一致,则有效,不一致则给出相应提示for w, u in enumerate(user_info):# print("***********************")# print(u)u1 = u.split()if u1[0] == name and u1[1] == password:result = 1user = u1breakelif u1[0] == name and u1[1] != password:result = 2breakelse:result = 3# print("***********************")

为什么不用上面图片的形式,是因为for w,u in enumerate(user_info)每次都会循环一次,显示结果为:

所以将结果标记为不同的数字,对应不同的状态,在结果外输出

    if result == 1:print('登陆成功')elif result == 2:print('密码不正确')else:print('账号不存在')while True:# 1、在登陆成功后,提示用户选择服务print("请选择服务类型:1-查询余额 2-取款 3-转账 0-退出")# 2、用户输入选择的服务选项# 3、程序接收用户的输入choice = input()# 4、程序判断用户选择的服务类型# 5、如果用户选择1,程序则显示当前账户的余额if choice == '1':print('当前账户余额:%s' % user[2])# 6、如果用户选择2,程序提示用户输入取款金额,并完成后续的取款处理if choice == '2':print("请输入取款金额")money = int(input())if money % 50 != 0:print('金额不合法')elif money > 1000:print('不能超过单笔限额')elif money > int(user[2]):print('余额不足')else:print('金额合法,开始进行取款处理')user[2] = str(int(user[2]) - money)user_info[w] = ' '.join(user) + '\n'print(user_info)f = open('c:\\user_info.txt', 'w')f.writelines(user_info)f.close()print('当前账户余额:%s' % user[2])# 7、如果用户选择3,程序提示输入收款账号、转账金额,并完成后续的转账处理if choice == '3':# 7.1 程序提示用户输入收款账号print('请输入收款账号:')# 7.2 程序接收用户的输入name2 = input()# 7.3 判断收款账号是否有效result2 = 0for w2, u in enumerate(user_info):u2 = u.split()if u2[0] == name2:user2 = u2result2 = 1breakif result2 == 1:print('收款账号合法')# 7.4 如果账号有效,提示用户输入转账金额print('请输入转账金额:')# 7.5 程序接收用户的输入money2 = int(input())# 7.6 程序进行转账金额校验if money2 > 2000:print('超过转账单笔限额')elif money > int(user[2]):print('余额不足')else:print('金额有效,开始进行转账交易')# 7.7 如果金额合法,进行转账交易处理user[2] = str(int(user[2]) - money2)user_info[w] = ' '.join(user) + '\n'user2[2] = str(int(user2[2]) + money2)user_info[w2] = ' '.join(user2) + '\n'print(user_info)f = open('c:\\user_info.txt', 'w')f.writelines(user_info)f.close()else:print('收款账号无效')# 8、如果用户选择0,程序终止执行if choice == '0':break

辅助理解:
name='my name is ganhaiyan'a=name.split()  #将字符串转为列表a[0]='her'      #通过索引更改值print(a)b=' '.join(a)    #将列表a转为字符串 ,此时的字符串已经不是之前的字符串print(b)a =['a','b','c',12,12.3,True]for y,i in enumerate(a):    #enumetate表示索引,a表示列表序列    print(y,i)

print(a[1])  #为b   #序列进行索引可以找出对应的i值

  

转载于:https://www.cnblogs.com/minkillmax/p/8298792.html

record-09 ATM 过程思想 综合练习相关推荐

  1. VB讲课笔记09:过程

    VB讲课笔记09:过程 一.键盘与鼠标事件过程 用户对程序界面的操作都是通过键盘和鼠标完成的. 

  2. 面向对象和面向过程思想 oc

    面向对象和面向过程思想 oc 面向对象和面向过程只是两种思想:都能解决问题: 面向过程关注的是解决问题的步骤:例如听歌-打开电脑--打开播放歌曲--关闭电脑 面向对象的思想的:思考的不是步骤,解决这个 ...

  3. 网络 TCP/IP 分层思想 综合布线系统

    计算机网络组成:硬件.操作系统.应用程序 计算机网络功能分为 资源共享.数据传输.增加可靠性.提高系统处理能力 计算机网络发展阶段 60年代--标志性事件:ARPANET--关键技术:分组交换 70- ...

  4. 过程计算机控制综合课程设计,自动化10本 12升《计算机控制综合课程设计》任务书...

    <计算机控制综合课程设计>任务书 一.设计目的和要求 (一)目的 通过计算机控制综合课程设计,学生应掌握计算机控制系统的设计原则.方法和步骤,熟悉相关计算机控制系统的硬件组成与设计方案,掌 ...

  5. 过程计算机控制综合课程设计,计算机控制技术综合课程设计.doc

    计算机控制技术综合应用设计 目的 计算机控制技术综合应用设计是学生必修的实践环节之一,应使学生较系统的完成电子系统设计,从选题.方案论证.软硬件设计.软硬件实现.系统测试.总结报告等基本过程,加深对模 ...

  6. python项目实战(一):购物商城(采用面向过程思想开发)

    文章目录 一.项目开发架构图 1.用户视图层 2.逻辑接口层 3.数据处理层 二.项目目录展示 三.项目源码展示 1.readme.md 2.settings.py 3.src.py 4.admin. ...

  7. 面向对象和面向过程思想

    都是解决问题的思维方式,都是代码组织的方式 面向过程是"执行者"思维,它通过将行为分成多个步骤进行切割. 例如:我想上车,我得先开车门,然后上车,然后关门.这种"执行者& ...

  8. 学习笔记(01):3华为工程师 ,带你实战C++(2018版)-09面向对象的思想实战

    立即学习:https://edu.csdn.net/course/play/9122/189940?utm_source=blogtoedu 13:50

  9. 自考计算机原理知识点,09年自考计算机网络实用技术知识点:ATM原理

    1.AIM的定义与功能 CCITr在I系列建议中给ATM下了这样的定义:ATM是一种转换模式(即前面所说的传输方式),在这一模式中信息被组织成信元(Cell),包含一段信息的信元并不需要周期性地出现在 ...

最新文章

  1. C#2.0及C#3.0语言规范
  2. mysql 5.5 替换字符_Mysql 5.7替换表中某些字段的字符串
  3. [Android组件化]分发模块依赖倒置
  4. FreeMarker语法指南
  5. 无失真压缩法可以减少冗余_CVPR 2020 论文概述:基于深度学习的层级式视频压缩方法...
  6. 关于【画面文言修正】 的 注意点。 (1.确认文字风格 2 从整体来去确认风格)
  7. python编译型语言和解释型语言的区别_编译型语言和解释型语言的区别?
  8. codereviw得到的一些经验
  9. 2019-9-2-贡献自己的服务器搭建tor中转
  10. youtube python enty_python GUI尝鲜(但当涉猎,见往事耳)
  11. 显示计算机配置的命令是,查看电脑配置命令
  12. 百度App组件化之路
  13. 程序员如何读懂火焰图
  14. java卸载不了_java卸载不了怎么处理?卸载时总出现这个
  15. Cypress系列(50)- wrap() 命令详解
  16. 三菱FX2NPLC 主控指令MC和主控指令清除MCR指令
  17. 关于微服务的一些了解
  18. 张一鸣的大学四年收获及工作感悟!网友:我们不一样...
  19. java奥特曼对战小怪兽_JAVA程序设计(09)-----面对对象设计初级应用 奥特曼打小怪兽...
  20. Inside of Stagefright

热门文章

  1. 搭建Jupyter学习环境
  2. 2017.1.9版给信息源新增:max_len、max_db字段
  3. 如何删除mac通用二进制文件
  4. Spring从菜鸟到高手(四)(上)使用JdbcTemplate类实现用户登陆验证、批量更新
  5. swift 中拨电话的实现
  6. JSP内置对象基础知识小结
  7. 使用phpStudy运行伊人集项目
  8. EXTJS之Ext.util.Observable自定义事件
  9. 1380 没有上司的舞会
  10. 转 The connection to adb is down, and a severe error