Python 小案例实战 —— 简易银行存取款查询系统
Python 小案例实战 —— 简易银行存取款查询系统
涉及知识点
- 包的调用
- 字典、列表的混合运用
- 列表元素索引、追加
- 基本的循环与分支结构
源码
import sys
import time
bank = {
'users':['Tom','Jack'],
'pwd': ['1701', '1702'],
'money':[1000,2000],
'history':[[],[]]
}
while True:
user_now_name = str(input("欢迎使用本系统!请输入您的用户名:\n"))
if user_now_name in bank['users']:
user_index = bank['users'].index(user_now_name)
# print('尊敬的', user_now_name, '您好!')
while True:
user_now_pwd = str(input("请输入您的密码:\n"))
if user_now_pwd == bank['pwd'][user_index]:
print('登录成功!')
isLogin = True
bank['history'][user_index].append(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) + ' 登陆系统')
break
else:
print('密码错误,请重试!\n')
break
else:
print('抱歉,不存在该用户!\n')
while isLogin:
print('\n请选择您要办理的业务:1.取款,2.存款,3.查询,4.退卡')
service_num = int(input())
if service_num == 1:
money_out = int(input('请输入取款金额:'))
if money_out > 0 and money_out < int(bank['money'][user_index]):
bank['money'][user_index] = int(bank['money'][user_index]) - money_out
print('当前剩余存款:', bank['money'][user_index])
bank['history'][user_index].append(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) + ' 取款' + str(money_out))
else:
print('当前余额不足!!')
elif service_num == 2:
money_in = int(input('请输入存款金额:'))
if money_in < 0:
print('存款金额必须大于0')
else:
bank['money'][user_index] = int(bank['money'][user_index]) + money_in
print('当前剩余存款:', bank['money'][user_index])
bank['history'][user_index].append(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) + ' 存款' + str(money_in))
elif service_num == 3:
for record in bank['history'][user_index]:
print(record)
elif service_num == 4:
bank['history'][user_index].append(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) + ' 退出系统')
break
运行测试结果
欢迎使用本系统!请输入您的用户名:
GShang
抱歉,不存在该用户!
欢迎使用本系统!请输入您的用户名:
Tom
请输入您的密码:
1702
密码错误,请重试!
请输入您的密码:
1701
登录成功!
请选择您要办理的业务:1.取款,2.存款,3.查询,4.退卡
1
请输入取款金额:1200
当前余额不足!!
请选择您要办理的业务:1.取款,2.存款,3.查询,4.退卡
1
请输入取款金额:200
当前剩余存款: 800
请选择您要办理的业务:1.取款,2.存款,3.查询,4.退卡
2
请输入存款金额:800
当前剩余存款: 1600
请选择您要办理的业务:1.取款,2.存款,3.查询,4.退卡
1
请输入取款金额:1700
当前余额不足!!
请选择您要办理的业务:1.取款,2.存款,3.查询,4.退卡
1
请输入取款金额:100
当前剩余存款: 1500
请选择您要办理的业务:1.取款,2.存款,3.查询,4.退卡
3
2019-12-20 10:40:47 登陆系统
2019-12-20 10:40:57 取款200
2019-12-20 10:41:01 存款800
2019-12-20 10:41:14 取款100
请选择您要办理的业务:1.取款,2.存款,3.查询,4.退卡
4
Process finished with exit code 0
Python 小案例实战 —— 简易银行存取款查询系统的更多相关文章
- java并发编程——通过ReentrantLock,Condition实现银行存取款
java.util.concurrent.locks包为锁和等待条件提供一个框架的接口和类,它不同于内置同步和监视器.该框架允许更灵活地使用锁和条件,但以更难用的语法为代价. Lock 接口 ...
- C语言实现的简单银行存取款程序 请输入如下数字命令
#include <stdio.h> int main(void) { //提供变量 cmd balance(余额) deposit(存款) withdraw(取款) //利用while做 ...
- 【计算机视觉】OpenCV篇(4) - Pycharm+PyQt5+Python小项目实战
1.下载安装 (1)Pycharm:下载链接 (2)推荐使用Qt Designer来设计界面,如果你装的是Anaconda的话,就已经自带了designer.exe,我这里使用的是Pycharm的虚拟 ...
- python3.6项目:银行存取款系统
card1 ="1001"#卡号pwd1="1001"#密码ban1=10000#余额card2 ="1002"pwd2="100 ...
- 【python小示例】简易彩票中奖模拟
咱自己写个彩票程序,成功亏掉3个亿 今天突发奇想,自己设计一个小程序,模拟彩票中奖,看看如果自己有个彩票公司,能挣钱吗?代码如下: # -*- utf-8 -*- """ ...
- python小案例-计算输入两个数的最大公约数与最小公倍数
# 计算最大公约数 def gcd(x,y): """ 计算最大公约数 :param x:一个正整数 :param y:一个正整数 :return:x,y的最大公约数 & ...
- 学习练习 java面向对象存取款查询余额
package com.hanqi; public class Account { String ZhangHao; double CunKuanYuE; Account(String ZhangHa ...
- Zabbix实战-简易教程--大型分布式监控系统实现Agent批量快速接入
一.分布式架构 相信使用zabbix的大神都熟悉他的分布式架构,分布式的优势相当明显,分而治之.比如目前我的架构图如下: 那么,对将要接入监控系统的任何一个agent如何快速定位,并进行接入呢? 问 ...
- 机器学习_线性回归和逻辑回归_案例实战:Python实现逻辑回归与梯度下降策略_项目实战:使用逻辑回归判断信用卡欺诈检测
线性回归: 注:为偏置项,这一项的x的值假设为[1,1,1,1,1....] 注:为使似然函数越大,则需要最小二乘法函数越小越好 线性回归中为什么选用平方和作为误差函数?假设模型结果与测量值 误差满足 ...
随机推荐
- jquery 全选样例
代码: $(function(){ $("#checkAllOld").click(function() { $("input[id^='box_old_']" ...
- C#上手练习2(FOR语句)
循环语句和条件语句一样都是每个程序中必不可少的,循环语句是用来完成一些重复的工作的,以减少编写代码的工作量. C# for 循环是最常用的循环语句,语法形式非常简单,多用于固定次数的循环. 具体的语法 ...
- Docker是什么、为什么是一种趋势
Docker的思想来自于集装箱,集装箱解决了什么问题?在一艘大船上,可以把货物规整的摆放起来.并且各种各样的货物被集装箱标准化了,集装箱和集装箱之间不会互相影响.那么我就不需要专门运送水果的船和专门运 ...
- npm命令集合
1.npm初始化项目:npm init 或者 npm init --yes 生产 package.json文件 2.下载package.json安装包: npm install 缩写 npm i
- Web服务器—IIS
https://blog.csdn.net/qq_33323054/article/details/81628627 https://jingyan.baidu.com/article/67508eb ...
- C语言中变量和函数的作用域和链接属性
C语言中变量和函数的作用域和链接属性 作用域 代码块作用域: 代码块指的是使用"{}"包围起来的部分. 在代码块中定义的变量,代码块之外是不能访问的. 代码块嵌套之后的变量作用域, ...
- mybatis与hibernate的区别持久层对比【面试题】
Mybatis技术特点: 好处: 通过直接编写SQL语句,可以直接对SQL进行性能的优化: 学习门槛低,学习成本低.只要有SQL基础,就可以学习mybatis,而且很容易上手: 由于直接编写SQL语句 ...
- 【cf570】D. Tree Requests(dsu on tree)
传送门 题意: 给出一个以\(1\)为根的有根树.之后有\(m\)个询问,每个询问为\(v_i,h_i\),需要回答以\(v_i\)为根的子树中,深度为\(h_i\)的那些结点所代表的字符能否构成回文 ...
- python27期前端
第一天笔记:HTML:是一种标识性的语言css:层叠样式表是一种用来表现HTML等文件样式(效果)的计算机语言JavaScript:简称“JS”,是一种属于网络的脚本语言 常用来为网页添加各式各样的动 ...
- 作业一(python初认识)
一.python发展历史 1989,为了度过圣诞假期,Guido开始编写Python语言编译器.Python这个名字来自Guido的喜爱的电视连续剧<蒙蒂蟒蛇的飞行马戏团>.他希望新的语言 ...