鱼C论坛

 找回密码
 立即注册
查看: 2196|回复: 5

。。。第一次尝试些写这么复杂的代码,求解惑,谢谢您们了!!!

[复制链接]
发表于 2020-2-7 23:37:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

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

x
本帖最后由 奔跑的少年丶 于 2020-2-7 23:39 编辑
  1. f1=open("D:\shopping.txt","r")
  2. money=300
  3. goods=[]
  4. goods_list=[]
  5. g_l=[]
  6. lis=[]
  7. i=0
  8. total=0
  9. for each_line in f1:
  10.     information=each_line.split()
  11.     goods.append({"name":information[0],"price":information[1]})
  12. for each_goods in goods:
  13.     print(f"{i+1}  {goods[i]['name']}  {goods[i]['price']}")
  14.     goods[i]["序号"] = i + 1
  15.     i+=1
  16. print("n 购物车结算")
  17. print("q或者Q退出程序")
  18. while 1:
  19.     num = input("请输入您所选购的商品序号:")
  20.     if num.isdigit():
  21.         for each_new_goods in goods:
  22.             if int(num)==each_new_goods["序号"]:
  23.                 print(f"{each_new_goods['name']}  {each_new_goods['price']}")
  24.                 if each_new_goods['name'] in lis:
  25.                     for each in g_l:
  26.                         if each_new_goods['name']==each[0]:
  27.                             each[2]=each[2]+1

  28.                 else:
  29.                     lis.append(each_new_goods['name'])
  30.                     g_l.append([each_new_goods['name'],each_new_goods['price'],1])
  31.     elif num.lower()=="n":
  32.         for new_g_l in g_l:
  33.             total=total+(int(new_g_l[2])*int(new_g_l[1]))
  34.         while total<money:                                           当total<money时为什么这段while不执行。。。。
  35.             # print("余额不足,请删除商品")                                    
  36.             del_goods = input("请输入您要删除的商品名称:")
  37.             g_l.remove(del_goods)
  38.             for new_g_l in g_l:
  39.                 total = total + (int(new_g_l[2]) * int(new_g_l[1]))
  40.         else:
  41.             print("您已购买成功,敬请等待!!!")
  42.     elif num.upper()=="Q":
  43.         print("您已退出本程序!!!")
  44.         break
  45.     else:
  46.         print("您所输入的商品序号不正确,请重新输入!!!")
  47. f1=open("D:\list.txt","a")
  48. for x in g_l:
  49.     x_=f"{x[0]}  {x[1]}  {x[3]}\n"
  50.     f1.write(x_)
  51. f1.write(f"总消费金额为{total}")
  52. f1.close()
复制代码


题目是:
1,完成一个商城购物车的程序。

商品信息在文件存储的,存储形式:
name price
电脑 1999
鼠标 10
游艇 20
美女 998
.......

要求:
1,用户先给自己的账户充钱:比如先充3000元。
2,读取商品信息文件将文件中的数据转化成下面的格式:
goods = [{"name": "电脑", "price": 1999},
{"name": "鼠标", "price": 10},
{"name": "游艇", "price": 20},
{"name": "美女", "price": 998},
...... ]

3,页面显示 序号 + 商品名称 + 商品价格,如:
1 电脑 1999
2 鼠标 10

n 购物车结算
q或者Q退出程序。

4,用户输入选择的商品序号,然后打印商品名称及商品价格,并将此商品,添加到购物车,用户还可继续添加商品。
5,如果用户输入的商品序号有误,则提示输入有误,并重新输入。
6,用户输入n为购物车结算,依次显示用户购物车里面的商品,数量及单价,若充值的钱数不足,则让用户删除某商品,直至可以购买,若充值的钱数充足,则可以直接购买。
7,用户输入Q或者q退出程序。
8,退出程序之后,依次显示用户购买的商品,数量,单价,以及此次共消费多少钱,账户余额多少,并将购买信息写入文件。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-2-7 23:38:55 | 显示全部楼层
35-40行这段代码为什么在total<money时也不执行啊,另外 想问问 我这个代码哪些地方需要改改。。。写了一晚上 才写出来的。。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-8 01:22:43 | 显示全部楼层
奔跑的少年丶 发表于 2020-2-7 23:38
35-40行这段代码为什么在total

亮点是:
美女 998
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-8 10:05:40 | 显示全部楼层
XiaoPaiShen 发表于 2020-2-8 01:22
亮点是:
美女 998

大哥  还有比这更重要的。。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-8 10:06:54 | 显示全部楼层
逻辑错误:余额不足应该是 total>money
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-8 10:56:53 | 显示全部楼层
SHRS23 发表于 2020-2-8 10:06
逻辑错误:余额不足应该是 total>money

。。。。我去   脑袋写蒙了。。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-1-22 06:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表