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....] 注:为使似然函数越大,则需要最小二乘法函数越小越好 线性回归中为什么选用平方和作为误差函数?假设模型结果与测量值 误差满足 ...
随机推荐
- 用户和登录的ID、Name和SID
SQL Server的安全主体主要分为Login.User和Role,不仅有ID属性,还有Name属性和SID属性,SID是指Security ID.在查看用户和登录的时候,受到模拟上下文的影响.当执 ...
- iota: Golang 中优雅的常量
阅读约 11 分钟 注:该文作者是 Katrina Owen,原文地址是 iota: Elegant Constants in Golang 有些概念有名字,并且有时候我们关注这些名字,甚至(特别)是 ...
- C#比较两个对象中的指定字段值是否相等
一.创建CompareFieldAttribute标识要比较的字段 using System; namespace CompareObjField { /// <summary> /// ...
- 使用c#创建Excel 2013外接程序
心好累,印象笔记国内版和国际版账号还不能通用,在国内版写了一个没法创建共享链接(只有共享给XXemail),于是又写了一遍到国际版上(因为图片无法复制,又copy了一遍图片),现在copy到博客园,图 ...
- 易优CMS:arcview的基础用法
[基础用法] 名称:arcview 功能:获取单条文档数据 语法: {eyou:arcview aid='文档ID'} <a href="{$field.arcurl}"&g ...
- selenium 优化 提升性能
结果: 用时:7.200437545776367s用时:5.909301519393921s headless用时:4.924464702606201s headless\phone用时:4.9358 ...
- JS基础语法---continue关键字
continue: 在循环中如果遇到continue关键字,直接开始下一次循环 如下:continue在计数器之前,会一直循环,浏览器会崩溃,我的就崩溃了 var i = 0; while (i &l ...
- 如何突破DNS报文的512字节限制
- DNS的512字节限制 根据协议标准,DNS协议同时占用UDP和TCP的53端口,这是为什么呢? 翻阅DNS资料,可以发现,DNS协议默认按UDP传输,为优化传输性能,DNS协议有一个512字节的 ...
- 干货,Wireshark使用技巧-过滤规则
- 过滤规则使用 在抓取报文时使用的规则,称为过滤规则,Wireshark底层是基于Winpcap,因此过滤规则是Winpcap定义的规则,设置过滤规则后,抓到的报文仅包含符合规则的报文,其它报文则被 ...
- 并发编程学习笔记(七、Thread源码分析)
目录: 常见属性 构造函数 start() run() 常见属性: /** * 线程名称 */ private volatile String name; /** * 线程优先级 */ private ...