参考文档:http://467754239.blog.51cto.com/4878013/1572203
简单的Python购物流程
此脚本能够实现的实现的功能: 1、通过用户名和密码认证才能登陆购物系统,否者拒绝。 2、认证通过后,用户需要输入工资后会打印一个购物列表,列表中有可以购买的物品。 3、用户可以用自已的工资买购物列表中的物品,前提是自已的工资承受的起,如果承受不起,退出。 4、购买的物品可以加入购物车,也可以从购物车删除。 5、确定购买物品结束后,就可以结算购买物品的总消费金额,然后退出整个系统 此脚本用到python的知识点: 1、流程控制:if | for | while True 2、文件的读取 3、列表的增加和删除 4、列表综合 5、模块 6、切片 7、索引 ......
一、Python购物流程脚本
[root@localhost]# cat shop.py
#!/usr/bin/env python # Filename:shop.py import sys userfile = open(r'user.txt').readlines() listpass = [i.strip('\n') for i in userfile] username1 = listpass[0::2] password1 = listpass[1::2] while True: user = raw_input("please input your username:") if len(user) == 0: print "empty user,try again." continue elif user in username1: user_num = username1.index(user) user_pas = password1[user_num] break elif user == "q" or user == "quit" or user == "exit": print "Welcome to come again next time" sys.exit() else: print "%s is not exists,please try again input your name" %(user) continue while True: passwdd = raw_input("please your password:") if len(passwdd) == 0: print "Sorry , input your password error , please try again." #elif passwdd in password1: elif passwdd == user_pas: print "\n" + "Welcome to %s login shoppings:" %(user) break else: print "password is Error,please try again." while True: try: salary = int(raw_input("please input your salary:")) break except ValueError: print "please input a number,not string." file = open('shoplist.txt','r') for fr in file: fr = fr.rstrip() print fr file.close() print """Options and arguments: input "D" : Delete from shoplist into del input "F" : Return to the total pages input "T" : Total shoplist""" products = [] prices = [] file2 = open('shoplist.txt') fr2 = file2.readlines() for line in fr2: p1 = line.split()[0] p2 = int(line.split()[1]) products.append(p1) prices.append(p2) prices = prices list00 = [] while True: choose = raw_input("please choose your buy things:") if choose in products: product_num = products.index(choose) product_price = prices[product_num] if salary >= product_price: print "%s $%d" %(choose,product_price) list00.append(choose) print "Add %s into your shoplist" %(choose) print "You choose to purchase the commodity list:",list00 salary = salary - product_price else: if salary < min(prices): print "Sorry , reset of your salary cannot buy anythings." sys.exit() elif choose == "T": print "salary left :$%s" %(salary) print "You choose to purchase the commodity list:",list00 sys.exit() elif choose == "D": while True: delchoose = raw_input("your will things remove from into shoplist:") if delchoose in products: product_num2 = products.index(delchoose) product_price2 = prices[product_num2] salary = salary + product_price2 list00.remove(delchoose) print list00 print salary break
二、脚本测试
[root@localhost]# python shop.py
please input your username:admin #输入错误的用户名,则登陆失败 admin is not exists,please try again input your name please input your username:xiaoming #输入正确的用户名后,可以继续输入密码 please your password:000 #密码输入错误后,尝试继续在次输入 password is Error,please try again. please your password:111 #密码输入正确后,可以继续下一步操作 Welcome to admin login shoppings: please input your salary:20000 #输入工资,打印购物列表 Iphone 6000 MacBook 11000 IPad 3000 MacMini 4000 Watch 3500 Options and arguments: input "D" : Delete from shoplist into del input "F" : Return to the total pages input "T" : Total shoplist please choose your buy things:Iphone #选择想要购买的物品1,并加入到购物车 Iphone $6000 Add Iphone into your shoplist You choose to purchase the commodity list: ['Iphone'] #已经成功加入到购物车 please choose your buy things:Watch #继续选择想要购买的物品,并加入到购物车 Watch $3500 Add Watch into your shoplist You choose to purchase the commodity list: ['Iphone', 'Watch'] #已经成功加入到购物车 please choose your buy things:IPad #继续选择想要购买的物品,并加入到购物车 IPad $3000 Add IPad into your shoplist You choose to purchase the commodity list: ['Iphone', 'Watch', 'IPad'] please choose your buy things:D #如果此时感觉不想买Bike了,可以从购物车将其删除 your will things remove from into shoplist:IPad #删除购物车的物品 ['Iphone', 'Watch'] 10500 please choose your buy things:T #要购买的物品已经购买完毕,此时可以结账,退出系统 salary left :$10500 You choose to purchase the commodity list: ['Iphone', 'Watch'] #打印购买的物品
三、登陆认证用户文件和购物列表文件
[root@localhost]# cat user.txt #认证用户和密码列表
xiaoming 111 xiaohua 222 xiaoxin 333 xiaohu 444
[root@localhost]# cat shoplist.txt #购物列表单
Iphone 6000 MacBook 11000 IPad 3000 MacMini 4000 Watch 3500