python购物车-优化版本

要求一:

    1.启动程序后,然该用户输入工资,然后打印商品列表

    2.允许用户根据商品编号购买商品

    3.用户选择商品后,检测余额是否足够,够就直接扣款,不够就提醒

    4.可随时退出,退出时,打印已购买商品和余额

要求二:

    用户输入:

    1.商品信息存在文件里

    2.已购商品,余额记录。


    商家输入:

    1.可以添加商品,修改商品价格


要求三:

   将普通用户登录和商家用户登录 写成两个py文件。


python普通用户脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#!/bin/bash/env python
#python3.x
'''
要求一:
     1.启动程序后,然该用户输入工资,然后打印商品列表
     2.允许用户根据商品编号购买商品
     3.用户选择商品后,检测余额是否足够,够就直接扣款,不够就提醒
     4.可随时退出,退出时,打印已购买商品和余额
要求二:
     用户输入:
     1.商品信息存在文件里
     2.已购商品,余额记录。
'''
#获取当前时间
import  time
date  =  time.strftime( "%Y-%m-%d %H:%M:%S" )
 
#读取商品列表
= open ( "shangpin.txt" , "r" )
wenzi  =  f.readlines()
f.close()
 
#读取用户列表
=  open ( "yh.txt" , "r" )
ff  =  f.readlines()
f.close()
 
zhanghu_list  =  []              #列表用于临时存储 账户的名字;
zhanghu  =  {}                   #用于临时存储用户和余额 信息;
shopping_list  =  []
 
#循环用户名和余额并赋值给已定义好的 字典zhanghu ;
for  in  ff:
     k,v  =  i.strip().split( " " )       #分别把账户和余额 去换行和空格后 赋值给 k v ;
     zhanghu[k]  =  v                   #把key 和value 添加的字典zhanghu 里边 ;
 
shopping  =  {}                               #定义商品字典
 
#通过循环将读取的商品序号、名称、价格 添加到商品字典dict1里边
for  i1  in  wenzi:
     ff1  =  i1.strip( "\n" )
     list1  =  list (ff1.split( " " ))
     list2  =  []                               #open读取商品后的列表
     for  i2  in  list1:
         list2.append(list1[ 1 ])
         list2.append(list1[ 2 ])
         shopping[list1[ 0 ]]  =  list2
         break
 
yonghu  =  input ( "请输入您的用户名:" )
#循环字典:zhanghu 里边的key ,也就是用户列表,将值赋值到 已定义好的用户列表里 zhanghu_list ;
for  aa  in  zhanghu.keys():
     zhanghu_list.append(aa)
#判断输入的yonghu 是否在 已经存在的账户列表里;
if  yonghu  in  zhanghu_list:           #如果在输入的账户在 已经存在的列表里,打印您的余额是多少 ;
     print ( "您的余额是{0}$:" . format (zhanghu[yonghu]))
     print ( "商品列表" .center( 30 "=" ))
     for  i2  in  shopping:
         print (i2, shopping[i2][ 0 ], shopping[i2][ 1 ])
else :
     zhanghu[yonghu]  =  0
     print ( "添加新用户!\n您的余额是0$ !" )
     print ( "商品列表" .center( 30 "=" ))
     for  i2  in  shopping:
         print (i2, shopping[i2][ 0 ], shopping[i2][ 1 ])
while  True :
     chongzhi  =  input ( "您要充值吗? y/n :" )
     if  chongzhi  = =  "y" :
         while  True :
             gongzi  =  input ( "请输入您的工资:" )
             if  gongzi.isdigit():
                 gongzi  =  int (gongzi)  +  int (zhanghu[yonghu])
                 print ( "您的余额是{0}$:" . format (gongzi))
                 break
             elif  gongzi  = =  "q" :
                 exit()
             else :
                 print ( "输入错误,请重新输入" )
         break
     elif  chongzhi  = =  "n" :
         gongzi  =  int (zhanghu[yonghu])
         break
     else :
         print ( "输入错误,请重新输入!" )
 
while  True :
     print ( "商品列表" .center( 30 "=" ))
     for  i2  in  shopping:
         print (i2, shopping[i2][ 0 ], shopping[i2][ 1 ])
     choice  =  input ( "请输入购买商品的编号:【按q退出】" )
     if  choice.isdigit():
         choice_1  =  int (choice)
         # 如果用户余额大于选择的商品的价格
         if  gongzi > =  int (shopping[choice][ 1 ]):
             shopping_wupin  =  [choice, shopping[choice][ 0 ], shopping[choice][ 1 ], date]
             shopping_list.append(shopping_wupin)
             gongzi  =  gongzi  -  int (shopping[choice][ 1 ])
             print ( "您的余额是:{0}$" . format (gongzi))
         else :
             print ( "您的余额不足!" )
     elif  choice  = =  "q" :
         print ( "您已购买以下商品" .center( 30 "=" ))
         #打开用户已购买文件,讲已购买的商品列表写进去。
         shangpin  =  open ( "yh-list.txt" "a" )
         for  i3  in  shopping_list:
             print (i3[ 0 ], i3[ 1 ], i3[ 2 ], i3[ 3 ])
             shangpin.write( "\n" )
             shangpin.write(yonghu)
             shangpin.write( " " )
             shangpin.write(i3[ 0 ])
             shangpin.write( " " )
             shangpin.write(i3[ 1 ])
             shangpin.write( " " )
             shangpin.write(i3[ 2 ])
             shangpin.write( " " )
             shangpin.write(i3[ 3 ])
         shangpin.close()
         #打开用户文件,将用户和用户对应的余额写进去。
         zhanghu[yonghu]  =  gongzi
         save  =  open ( "yh.txt" , "w" )
         for  zhanghu_save  in  zhanghu:
             save.write(zhanghu_save)
             save.write( " " )
             save.write( str (zhanghu[zhanghu_save]))
             save.write( "\n" )
         save.close()
         print (" ".center(38, " - "))
         print ( "您的余额是:{yue}$" . format (yue = gongzi))
         exit()
     else :
         print ( "输入错误,请重新输入" )

python商家用户脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#!/bin/bash/env python
#python3.x
 
'''
     商家输入:
     1.可以添加商品,修改商品价格
'''
#读取商品列表
= open ( "shangpin.txt" , "r" )
wenzi  =  f.readlines()
f.close()
shopping  =  {}                               #定义商品字典
 
#通过循环将读取的商品序号、名称、价格 添加到商品字典dict1里边
for  in  wenzi:
     ff  =  i.strip( "\n" )
     list1  =  list (ff.split( " " ))
     list2  =  []                               #open读取商品后的列表
     for  i2  in  list1:
         list2.append(list1[ 1 ])
         list2.append(list1[ 2 ])
         shopping[list1[ 0 ]]  =  list2
         break
while  True :
     print ( "商品列表" .center( 30 , "=" ))
     # print(shopping)
     for  in  shopping:
         print (i,shopping[i][ 0 ],shopping[i][ 1 ])
     print (" ".center(34," - "))
     change  =  input ( "你要添加产品/修改产品:添加产品输入:1  修改产品输入:2 [按q退出]:" )
     if  change  = =  "1" :
         num  =  input ( "请输入产品序号:[例如:1]:" )
         name  =  input ( "请输入商品名称:[例如:自行车]:" )
         price  =  input ( "请输入商品价格:[例如:1000]:" )
         list3  =  []
         list3.append(name)
         list3.append(price)
         shopping[num]  =  list3
         print (shopping)
     elif  change  = =  "2" :
         num2  =  input ( "请输入要修改的商品序号:[例:1]:" )
         name2  =  input ( "您要修改商品名称吗? y/n:" )
         if  name2  = =  "y" :
             change2  =  input ( "请输入修改后的商品名称:[例:电视]:" )
             shopping[num2][ 0 =  change2
         elif  name2  = =  "n" :
             pass
         else :
             print ( "输入错误,请重新输入!" )
         change3  =  input ( "您要修改商品价格吗? y/n:" )
         if  change3  = =  "y" :
             change4  =  input ( "请输入修改后的商品价格:[例:1000]:" )
             shopping[num2][ 1 =  change4
             print (shopping)
         elif  name2  = =  "n" :
             print (shopping)
         else :
             print ( "输入错误,请重新输入!" )
     else :
         save  =  open ( "shangpin.txt" "w" )
         for  iii  in  shopping:
             save.write(iii)
             save.write( " " )
             save.write(shopping[iii][ 0 ])
             save.write( " " )
             save.write(shopping[iii][ 1 ])
             save.write( "\n" )
         save.close()
         exit()




     本文转自506554897 51CTO博客,原文链接:http://blog.51cto.com/506554897/1939657 ,如需转载请自行联系原作者



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值