• 售前

  • 售后

热门帖子
入门百科

python实现银行账户系统

[复制链接]
chris是小胖纸 显示全部楼层 发表于 2021-10-25 19:33:53 |阅读模式 打印 上一主题 下一主题
Python编写一个浅易银行账户体系,供大家参考,详细内容如下
文章中主要涉及的方法是Python中的open(filename, ‘r')以读的方式打开文件open(filename, ‘w')以写的方式打开文件我们用for * in *读取文件中的数据大概写入文件数据 用dict(eval(list2))方法来把字符串转化为字典。
详细代码如下
  1. import math
  2. import re
  3. def main(): # 主函数
  4. select = True
  5. while (select):
  6. menu()
  7. start_int = input("请选择你您想要操作功能的序号:")
  8. if start_int == "12":
  9. select = False
  10. print("你已经退出系统欢迎下次在来")
  11. elif start_int == "4":
  12. insert()
  13. elif start_int == "5":
  14. login()
  15. elif start_int == "6":
  16. show()
  17. elif start_int == "11":
  18. delete()
  19. elif start_int == "7":
  20. revise()
  21. elif start_int == "8":
  22. deposit()
  23. elif start_int == "9":
  24. getMoney()
  25. elif start_int == "10":
  26. UseMoney()
  27. def menu(): # 菜单显示
  28. print("1========银行存取钱系统========")
  29. print("2===========================")
  30. print("3===========功能菜单===========")
  31. print("4=========注册个人信息==========")
  32. print("5============登入=============")
  33. print("6=========查询个人信息==========")
  34. print("7=========修改个人账户==========")
  35. print("8============存钱=============")
  36. print("9============取钱=============")
  37. print("10=========显示年收益==========")
  38. print("11========注销个人信息==========")
  39. print("12===========退出=============")
  40. filename = "Bank.txt" # 定义保存用户信息的文件名
  41. def save(Bank): # 创建文件方法
  42. try:
  43. Bank_txt = open(filename, "a")
  44. except Exception as e:
  45. Bank_txt = open(filename, "w")
  46. for info in Bank:
  47. Bank_txt.write(str(info) + "\n")
  48. Bank_txt.close()
  49. def insert(): # 注册方法
  50. BankList = [] # 保存用户信息列表
  51. mark = True # 是否继续添加
  52. while mark:
  53. id = input("请输入您的ID密码(如1001):")
  54. if not id:
  55. break
  56. name = input("请输入姓名")
  57. if not name:
  58. break
  59. try:
  60. deposit = int(input("输入你要存款的金额"))
  61. if deposit == 0:
  62. break
  63. except:
  64. print("输入无效,不是输入整型数,请重新输入")
  65. continue
  66. Bank = {"id": id, "name": name, "deposit": deposit}
  67. BankList.append(Bank)
  68. mark = False
  69. save(BankList)
  70. print("注册成功")
  71. global g_select
  72. g_select = 0
  73. global Username
  74. global Userpassword
  75. def login(): # 登入方法
  76. global Username
  77. global g_select
  78. global g_BankQuery
  79. global Userpassword
  80. g_BankQuery = []
  81. Username = str(input("请输入您的用户名"))
  82. Userpassword = str(input("请输入您的密码"))
  83. file = open(filename, 'r')
  84. Bank = file.readlines() # 读取全部内容
  85. for list in Bank:
  86. d = dict(eval(list)) # 字符转化为字典
  87. if d['name'] == Username and d['id'] == Userpassword:
  88. g_BankQuery.append(d)
  89. print("登入成功!")
  90. g_select = 1
  91. else:
  92. pass
  93. if not g_BankQuery:
  94. g_select = 0
  95. print("登入失败请先注册!")
  96. else:
  97. pass
  98. def show(): # 查询个人信息
  99. if g_select == 1:
  100. format_title = "{:^6}{:^12}"
  101. print(format_title.format("名字", "存款"))
  102. format_date = "{:^6}{:^12}"
  103. for info in g_BankQuery:
  104. print(format_date.format(str(info.get('name')), str(info.get('deposit'))))
  105. else:
  106. print("请先登入!")
  107. def delete(): # 删除个人账户方法
  108. global g_BankQuery
  109. cz = []
  110. global g_select
  111. choose = 0
  112. if g_select == 1:
  113. while choose < 3:
  114. username = str(input("请输入你姓名"))
  115. userpassword = str(input("请输入您的密码"))
  116. file = open(filename, 'r')
  117. Bank = file.readlines() # 读取全部内容
  118. for list in Bank:
  119. d = dict(eval(list)) # 字符转化为字典
  120. if d['name'] == username and d['id'] == userpassword:
  121.   cz.append(d)
  122.   file.close()
  123.   choose = 3
  124.   NewBank = open(filename, 'w') # 以写的方式打开文件
  125.   for list2 in Bank:
  126.   d2 = dict(eval(list2)) # 字符转化为字典
  127.   if d2['name'] != username and d2['id'] != userpassword:
  128.   NewBank.write(str(d2) + "\n")
  129.   else:
  130.   pass
  131. else:
  132.   pass
  133. if not cz:
  134. choose = choose + 1
  135. if choose == 3:
  136.   g_select = 0
  137.   print("请重新登入!")
  138. else:
  139.   print("用户名或者密码错误,请重新输入你还有:" + str(3 - choose) + "机会")
  140. else:
  141. g_BankQuery.clear()
  142. g_select = 0
  143. print("您的个人信息已经注销")
  144. else:
  145. print("请先登入!")
  146. def revise(): # 修改个人账户方法
  147. cz = []
  148. global g_select
  149. if g_select == 1:
  150. username = input("请输入您的用户名:")
  151. userpassword = input("请输入您的密码:")
  152. file = open(filename, 'r')
  153. Bank = file.readlines() # 读取全部内容
  154. for list in Bank:
  155. d = dict(eval(list)) # 字符转化为字典
  156. if d['name'] == username and d['id'] == userpassword:
  157. cz.append(d)
  158. file.close()
  159. NewBank = open(filename, 'w') # 以写的方式打开文件
  160. for list2 in Bank:
  161.   d2 = dict(eval(list2)) # 字符转化为字典
  162.   if d2['name'] == username and d2['id'] == userpassword:
  163.   d2['name'] = input("输入您的新名字:")
  164.   d2['id'] = input("输入您的新密码:")
  165.   NewBank.write(str(d2) + "\n")
  166.   print("修改成功,请重新登入!")
  167.   g_select = 0
  168.   else:
  169.   NewBank.write(str(d2) + "\n")
  170. else:
  171. pass
  172. if not cz:
  173. print("你输入的密码或者用户名有误请重新登入")
  174. g_select = 0
  175. else:
  176. pass
  177. else:
  178. print("请先登入!")
  179. def deposit(): # 存钱方法
  180. global g_BankQuery
  181. global g_select
  182. cz = []
  183. if g_select == 1:
  184. money = int(input("请输入你要存多少钱:"))
  185. file = open(filename, 'r')
  186. Bank = file.readlines() # 读取全部内容
  187. for list in Bank:
  188. d = dict(eval(list)) # 字符转化为字典
  189. if d['name'] == Username and d['id'] == Userpassword:
  190. cz.append(d)
  191. file.close()
  192. NewBank = open(filename, 'w') # 以写的方式打开文件
  193. for list2 in Bank:
  194.   d2 = dict(eval(list2)) # 字符转化为字典
  195.   if d2['name'] == Username and d2['id'] == Userpassword:
  196.   d2['deposit'] = str(int(d2['deposit']) + money)
  197.   NewBank.write(str(d2) + "\n")
  198.   print("储存成功!")
  199.   g_BankQuery.clear()
  200.   g_BankQuery.append(d2)
  201.   else:
  202.   NewBank.write(str(d2) + "\n")
  203. else:
  204. pass
  205. else:
  206. print("请先登入!")
  207. def getMoney(): # 取钱方法
  208. global g_select
  209. global g_BankQuery
  210. cz = []
  211. if g_select == 1:
  212. money = int(input("请输入你要取多少钱:"))
  213. file = open(filename, 'r')
  214. Bank = file.readlines() # 读取全部内容
  215. for list in Bank:
  216. d = dict(eval(list)) # 字符转化为字典
  217. if d['name'] == Username and d['id'] == Userpassword:
  218. cz.append(d)
  219. if money > int(d['deposit']):
  220.   print("您的余额不足")
  221. else:
  222.   file.close()
  223.   NewBank = open(filename, 'w') # 以写的方式打开文件
  224.   for list2 in Bank:
  225.   d2 = dict(eval(list2)) # 字符转化为字典
  226.   if d2['name'] == Username and d2['id'] == Userpassword:
  227.   d2['deposit'] = str(int(d2['deposit']) - money)
  228.   NewBank.write(str(d2) + "\n")
  229.   print("取钱成功!")
  230.   g_BankQuery.clear()
  231.   g_BankQuery.append(d2)
  232.   else:
  233.   NewBank.write(str(d2) + "\n")
  234. else:
  235. pass
  236. else:
  237. print("请先登入!")
  238. def UseMoney(): # 利息计算
  239. UM = True
  240. while UM:
  241. try:
  242. money = float(input("请输入你要投资理财多少钱:"))
  243. year = int(input("请你输入你要储存多少年:"))
  244. except:
  245. print("请你输入整数年份!")
  246. if 0 < year <= 3:
  247. profitmargin = 0.03
  248. elif 3 < year <= 5:
  249. profitmargin = 0.04
  250. elif 5 < year <= 10:
  251. profitmargin = 0.06
  252. elif year > 10:
  253. profitmargin = 0.08
  254. if money < 0 or year <= 0:
  255. print("您的本金不能少于0元或者年份不能少于0年")
  256. else:
  257. UM = False
  258. profit = round(money * year * profitmargin, 3)
  259. print("你储存:" + str(year) + "年将获得的利润会等于:" + str(profit) + "元本金加利润会等于:" + str(profit + money) + "元")
  260. if __name__ =="__main__":
复制代码
运行图片:






以上就是本文的全部内容,渴望对大家的学习有所帮助,也渴望大家多多支持脚本之家。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作