准备好好学学Python了,要不快没饭吃了,这两个礼拜看了一些视频教程和书籍,遂拿这个ATM小程序练练手。文件结构:程序共有6个py文件和3个文本文件cashin.py -- 还款模块 goods_list -- 商品列表 login.py -- 主文件 menu.py -- 菜单模块 printlist.py -- 记录打印模块 record_tran.txt -- 用户操作记录 shopping.py -- 购买模块 user_list -- 用户列表 withdraw.py -- 提现模块源代码: login.py#!/usr/bin/python import sysfrom menu import menu_show while True: user = str(raw_input(" 33[1;32;40mPlease input your name: 33[0m")) f = open("user_list","r+") for line in f.readlines(): n = str(line.split()[0]) p = str(line.split()[1]) if user == n: while True: password = str(raw_input(" 33[1;32;40mPlease input your password: 33[0m")) if password != p: print " 33[1;31;40mThe password is incorrect 33[0m" continue else: print " 33[1;32;40myes let you in. 33[0m" global money money_total = 15000 while True: print " 33[1;33;40mYou total money is: 33[0m",money_total money_total = menu_show(user,money_total) else: print " 33[1;31;40mThe user is not vaild, please re-input: 33[0m" continue menu.py#!/usr/bin/python import sysimport osfrom shopping import show_shopping_listfrom printlist import print_listfrom withdraw import with_drawfrom cashin import cash_in def menu_show(n,mo): print "Welcome %s, This is the ATM system:" %n print "Select what you want to do:" print " 1. Shopping" print " 2. Withdraw" print " 3. Cash in" print " 4. Print list" print " 5. Exit" user_input = int(raw_input("Input 0 ~ 5 ")) global current_user current_user = n mo = menu_select(user_input,mo) return mo def menu_select(input,money): if input == 1: money = show_shopping_list(current_user,money) if input == 2: money = with_draw(current_user,money) if input == 3: money = cash_in(current_user,money) if input == 4: print_list(current_user) if input == 5: print " 33[1;33;40mThank you for using ATM, Good bye! 33[0m" sys.exit() return moneyshopping.py#!/usr/bin/python import sysimport time def show_shopping_list(n,m): #read the file to a dictionary goods_dict={} goods = open("goods_list","r+") for line in goods.readlines(): key = line.split()[0] value = line.split()[1]+" "+line.split()[2] goods_dict[key] = value #print the goods list print "The current user is %s." %n print goods_dict #decrease the money buy_number = int(raw_input("Please select which one you want to buy:")) goods_name = goods_dict[`buy_number`].split()[0] goods_value = int(goods_dict[`buy_number`].split()[1]) m = calculate(int(m),goods_value) #record the log shopping_file_write(n,goods_name,goods_value,0) return mdef calculate(qian,pri): new_qian = qian - pri return new_qian def shopping_file_write(user,name,price,fee): tran_time=time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.time())) spath = "record_tran.txt" f = open(spath,"a") f.write("%s|%s|%s|%d|%d
" %(user,tran_time,name,price,fee)) f.close() withdraw.py#!/usr/bin/python import time #withdraw function def with_draw(n,m): print "Hello %s, you account have %d RMB." %(n,m) print "Attention: There are 5% fee per withdraw !" draw = int(raw_input("Please input how much money you want to with draw:")) m = m - draw * 1.05 #record to the log withdraw_file_write(n,draw) return m def withdraw_file_write(user,withdraw): shouxufei = cash * 0.05 tran_time=time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.time())) spath = "record_tran.txt" f = open(spath,"a") f.write("%s|%s|withdraw|%d|%d
" %(user,tran_time,withdraw,shouxufei)) f.close()cashin.py#!/usr/bin/pythonimport time#cash in functiondef cash_in(n,m): print "Hello %s, your account have %d RMB now." %(n,m) cash = int(raw_input("Please input how much money you want to save in :")) m = m + cash cashin_file_write(n,cash) return m def cashin_file_write(user,cashin): tran_time=time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.time())) spath = "record_tran.txt" f = open(spath,"a") f.write("%s|%s|cashin|%d|0
" %(user,tran_time,cashin)) f.close()printlist.py#!/usr/bin/python#select current user"s billdef print_list(n): print "Hello %s, Here is your bill:" %n print "Account|Date|Goods|Price|Fee" spath1 = "./record_tran.txt" f1 = open(spath1,"r") for line in f1.readlines(): if line.split("|")[0] == n: print lineuser_listuser1 123user2 456goods_list1 Car 2500002 Clothes 3993 Shoes 1994 Iphone5s 49995 Coffee 356 Foods 687 Bicycle 1688example of record_tran.txtuser1|2014-07-08 16:59:27|Iphone5s|4999|0 user2|2014-07-08 16:59:31|withdraw|1000|50 user1|2014-07-08 16:59:56|withdraw|500|25 user2|2014-07-09 14:38:33|cashin|3456|0 user2|2014-07-09 14:39:10|Coffee|35|0《Python核心编程 第二版》.(Wesley J. Chun ).[高清PDF中文版] http://www.linuxidc.com/Linux/2013-06/85425.htm《Python开发技术详解》.( 周伟,宗杰).[高清PDF扫描版+随书视频+代码] http://www.linuxidc.com/Linux/2013-11/92693.htmPython脚本获取Linux系统信息 http://www.linuxidc.com/Linux/2013-08/88531.htm在Ubuntu下用Python搭建桌面算法交易研究环境 http://www.linuxidc.com/Linux/2013-11/92534.htmPython 语言的发展简史 http://www.linuxidc.com/Linux/2014-09/107206.htmPython 的详细介绍:请点这里 Python 的下载地址:请点这里本文永久更新链接地址:http://www.linuxidc.com/Linux/2014-09/107274.htm