-->

基于python的购物车程序实例之二







经过反反复复的修改,最后我还是post了一个未完成的作品,当中的逻辑真的乱得一塌糊涂


下面就来简单介绍下它的结构吧,当购物车程序启动后系统会询问用户是否为第一次使用,


如果为第一次使用则要求用户注册,否则将直接进入登录流程,用户的信息保存在login.ini


这个配置文件当中,登录时系统会通过分片截取方式捕获文件里的内容是否与用户输入的


相同,不同则要求重新输入,成功登录后系统会要求用户充值钱包,钱包充值函调用了非


数字判断,只要用户输入的内容不是数字就会要求重新输入,充值完毕后将进入商城,用


户可以选择性购买商品,购买完毕后选择Q进入购物车结算.....


好吧,购物车还未完成,当中的逻辑实在是太乱了,我需要重新整理思路再次重写,当然


我也很期待有大神可以给点建议,因为这个购物车全是凭自己所掌握的知识开发的,未曾


参阅过任何文档、源码,作为一个自学的菜鸡,我还有很多知识需要普及,如果您也喜欢


python,欢迎一起交流,本购物车程序将会不断完善下去,我也会不断地发布新的文章


与大家一起分享学习的心得,也希望能从中把自己的知识水平提升到更高的级别!



# ===============以下为源码===============#



#coding: utf-8
__author__ = 'By Naruto'
from prettytable import PrettyTable
import sys,os
import getpass,time
# ===============主要函数===============#
def register(us,ps): #register函数
while True:
new_pasd_again = raw_input("请再次输入您要创建的密码:")
if new_pasd_again <> ps:
print '您两次输入的密码不符,请重新输入!'
else:
break
account = "用户:%s 密码:%s"%(us,ps)
with open('login.ini','a+') as df:
if df == '':
df.write('===========这里是系统配置文件,请勿随意修改===========\n'+ account)
print "信息保存成功 ,请登录您的账户!"
print '请重新登录您的账户!'
else:
df.write('\n'+ account)
print "信息保存成功,请登录您的账户!"
print '请重新登录您的账户!'
def login(us,ps): #到文件判断用户输入的账号密码是否正确函数
num = 0
with open('login.ini','r')as f:
for i in f:
num+=1
if num ==2:
user, psd = i.strip('\n').split()
if us == user[9:] and ps ==psd[9:]:
return 'Y'
else:
return 'N'
def login2(usd,psb): #登录函数
user_name = raw_input("请输入您的用户名:")
user_pasd = raw_input("请输入您的密码:")
rs = login(user_name,user_pasd)
if rs =='Y':
return 'True'
else:
return 'Felse'
def bank_money(num): #钱包充值函数
if num.isdigit():
return True
else:
return False
def shop_stoye(**arg): #商品展示函数
nu = ['A.', 'B.', 'C.','Q']
shop = ['mp3===》300RMB','mp4===》500RMB','iphone===》3000RMB','到购物车结算']
for k,v in enumerate(shop):
print nu[k],v
def Choose_shop(arg): #选择商品或进入购物车
if arg == 'A':
return 300
elif arg == 'B':
return 500
elif arg == 'C':
return 3000
elif arg =='Q':
return 'go'
else:
return 'Error'
# ===============主函数启动===============#
if __name__ == "__main__":
us_up = ""
psd_up = ''
i = 2
flog = True
while i >= 0: #进入购物车只有3次机会,选择y执行注册函数,n则直接执行登录
ask_question = raw_input("您是第一次使用本购物车系统吗? y|n:")
if ask_question == 'y':
new_name = raw_input("请输入您要注册的用户名:")
new_pasd = raw_input("请输入您要注册的密码:")
register(new_name, new_pasd)
login2(us_up, psd_up)
bank_money()
elif ask_question == 'n':
while flog == True:
bs = login2(us_up, psd_up)
if bs == 'True': #登录完毕后系统会要求用户输入充值金额
print '首次使用请先充值钱包!'
while True:
bank_Money = raw_input("请输入您要充值的金额:")
temp = bank_money(bank_Money)
if temp == True: #充值完毕后方可展示商品
print '充值完毕,您当前余额为:%s RMB' % int(bank_Money)
print '欢迎光临幕尼贺锡城,我们目前有以下商品正在出售!'
shop_stoye()
bankmoney1 = {}
while True:
choose = raw_input('请选择您要购买的商品:')
chose = Choose_shop(choose)
if chose == 300:
bankmoney1['mp3'] = 300
print 'MP3已成功加入购物车.'
continue
elif chose == 500:
bankmoney1['mp4'] = 500
print 'MP4已成功加入购物车.'
continue
elif chose == 3000:
bankmoney1['ipone'] = 3000
print 'iphone已成功加入购物车.'
continue
elif chose == 'go':
break
elif chose == 'Error':
print '您的输入有误,请重新输入!'
print ("您目前在本购物车添加了以下商品:") #选择Q后会进入购物车,并打印显示商品总价与当前余额
abc = 0
for key in bankmoney1:
print "品名:%s 价格%s" % (key, bankmoney1[key])
abc += bankmoney1[key]
print "总计:%d元,您的钱包有%d元" % (int(abc), int(bank_Money))
sum = raw_input('您要现在结账吗? y|n:')
bank_sum = 0
if sum == 'y':
bank_sum = int(bank_Money) - int(abc)
print '结算完毕,您的账户还剩%s元。'%bank_sum

elif sum == 'n':
continue
else:
print '请输入正确的金额!'
flog = False
else:
print "登录失败,您输入的账号或密码错误!"
else:
print "抱歉,您的输入有误,请输入 (y|n)您还有%s次机会。"%i
i -= 1
sys.exit()

0 评论:

发表评论