鱼C论坛

 找回密码
 立即注册
查看: 1112|回复: 12

[已解决]请问这个怎么循环添加商品,然后再结算?

[复制链接]
发表于 2020-5-15 18:36:48 | 显示全部楼层 |阅读模式

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

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

x
  1. #设置满减活动,打折活动的选项

  2. while 1:
  3.     while True:
  4.         commodity = int(input("请输入商品货号:"))
  5.         price = float(input("请输入商品单价:"))
  6.         if(price < 0):
  7.             print("输入不合法!")
  8.         amount = int(input("请输入商品数量:"))
  9.         total_price = price * amount
  10.         print("原价:",total_price)

  11.         print("1.一件8.8折,俩件7.8折")
  12.         print("2.满500减100,满800减200,满1000减300")

  13.         sale = int(input("请输入折扣活动:"))
  14.         i = 0
  15.    
  16. #结算收银
  17.    
  18.         #打折活动   
  19.         if sale == 1:  
  20.             if amount >= 1:
  21.                 total_price1 = total_price * 0.88

  22.             if amount >= 2:
  23.                 total_price1 = total_price * 0.78

  24.             print("折后价:",total_price1)

  25.         #满减活动
  26.         if sale == 2:  

  27.             if (total_price >= 500) :
  28.                 i += 100
  29.                 total_price1 = total_price - i
  30.                

  31.             if (total_price >= 800) :
  32.                 i += 100
  33.                 total_price1 = total_price - i

  34.             if (total_price >= 1000) :
  35.                 i += 100
  36.                 total_price1 = total_price - i

  37.             print("折后价:",total_price1)
  38.             
  39.                
  40.             
  41.         else :
  42.             total_price1 = total_price
  43.             print(total_price1)


  44.         payment = int(input("请输入付款金额:"))
  45.         margin = payment - total_price1


  46.         if (margin >= 0):
  47.             print("找零:",str(margin))
  48.         else:
  49.             print("余额不足!")

  50.         mylog = open('recode.log', mode = 'a',encoding='utf-8')
  51.         for i in range(1):
  52.             print(total_price, file=mylog)
  53.         mylog.close()
  54.         break
复制代码
最佳答案
2020-5-16 02:29:01
半夜睡不着,代码全部帮你敲好了,大改了一下

  1. while True:
  2.     while True:
  3.         commodity = input("请输入商品货号(输入Esc退出程序):")
  4.         if commodity == 'Esc':
  5.             break
  6.         price = input("请输入商品单价:")
  7.         if not price.isdigit() or not commodity.isdigit() or float(price) <= 0 :  # 判断输入是否为数字 和 是否大于零
  8.             print("输入不合法!请重新输入!")
  9.             continue
  10.         break
  11.     if commodity == 'Esc':
  12.         break
  13.     while True:
  14.         amount = input("请输入商品数量:")
  15.         if not amount.isdigit() and int(amount) < 0:  # 判断输入是否为数字 和 是否大于零
  16.             print("输入不合法!请重新输入!")
  17.         else:
  18.             amount = int(amount)
  19.             total_price = float(price) * amount
  20.             temp = str(int(total_price))
  21.             break

  22.     print("总价:%.2f"%total_price)
  23.     print("现在本店有两种活动,输入1,2进行选择~")
  24.     print("1.十件8.8折,十五件7.8折")
  25.     print("2.满500减100,满800减200,满1000减300")

  26.     while True:
  27.         sale = input("请输入折扣活动:")
  28.         if  sale != '2' and sale != '1':
  29.             print("输入不合法!请重新输入1 或 2 !")
  30.             continue
  31.         break

  32.     # 打折活动
  33.     if sale == '1':
  34.         if amount >= 15:
  35.             total_price = total_price * 0.78

  36.         elif amount >= 10:
  37.             total_price = total_price * 0.88

  38.         print("活动1折后价:%.2f"%total_price)

  39.     # 满减活动
  40.     elif sale == '2':

  41.         if total_price >= 1000:
  42.             total_price -= 300
  43.         elif total_price >= 800:
  44.             total_price -= 200
  45.         elif total_price >= 500:
  46.             total_price -= 100
  47.         print(total_price)

  48.         print("活动2折后价:%.2f"%total_price)
  49.     elif int(total_price) == int(temp):
  50.         print('不满足活动条件,未参与活动!')
  51.         sale = 0
  52.     while True:
  53.         try:
  54.             payment = int(input("请输入付款金额:"))
  55.             break
  56.         except ValueError:
  57.             print('输入不合法!请重新输入!')

  58.     margin = payment - total_price

  59.     if margin >= 0:
  60.         print("找零:", margin)
  61.     else:
  62.         print(f"还差{-margin}元,已记账")
  63.     goods = '|商品货号:{:^3}   |商品单价:{:^3}   |商品数量:{:^3}    |原价:{:^5}    |参与活动:{:^2}    |活动后价格:{:^5}   |实付款:{:^5}    |找零或欠账:{:^5}\n'\
  64.         .format(commodity,price,amount,temp,sale,total_price,payment,margin)
  65.     with open('Goods.txt','a',encoding='utf-8') as f:
  66.         f.write(goods)
复制代码

如果帮助到你了 给个最佳吧~
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-15 18:38:56 | 显示全部楼层
  1. while True:
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-15 18:44:32 | 显示全部楼层
死循环套死循环,人类迷惑行为
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-15 18:52:56 | 显示全部楼层
为啥要写俩while循环呢?
直接一个while True,然后再设置条件退出不就好了??
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-15 19:14:33 From FishC Mobile | 显示全部楼层
永恒的蓝色梦想 发表于 2020-5-15 18:44
死循环套死循环,人类迷惑行为

……额
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-16 02:29:01 | 显示全部楼层    本楼为最佳答案   
半夜睡不着,代码全部帮你敲好了,大改了一下

  1. while True:
  2.     while True:
  3.         commodity = input("请输入商品货号(输入Esc退出程序):")
  4.         if commodity == 'Esc':
  5.             break
  6.         price = input("请输入商品单价:")
  7.         if not price.isdigit() or not commodity.isdigit() or float(price) <= 0 :  # 判断输入是否为数字 和 是否大于零
  8.             print("输入不合法!请重新输入!")
  9.             continue
  10.         break
  11.     if commodity == 'Esc':
  12.         break
  13.     while True:
  14.         amount = input("请输入商品数量:")
  15.         if not amount.isdigit() and int(amount) < 0:  # 判断输入是否为数字 和 是否大于零
  16.             print("输入不合法!请重新输入!")
  17.         else:
  18.             amount = int(amount)
  19.             total_price = float(price) * amount
  20.             temp = str(int(total_price))
  21.             break

  22.     print("总价:%.2f"%total_price)
  23.     print("现在本店有两种活动,输入1,2进行选择~")
  24.     print("1.十件8.8折,十五件7.8折")
  25.     print("2.满500减100,满800减200,满1000减300")

  26.     while True:
  27.         sale = input("请输入折扣活动:")
  28.         if  sale != '2' and sale != '1':
  29.             print("输入不合法!请重新输入1 或 2 !")
  30.             continue
  31.         break

  32.     # 打折活动
  33.     if sale == '1':
  34.         if amount >= 15:
  35.             total_price = total_price * 0.78

  36.         elif amount >= 10:
  37.             total_price = total_price * 0.88

  38.         print("活动1折后价:%.2f"%total_price)

  39.     # 满减活动
  40.     elif sale == '2':

  41.         if total_price >= 1000:
  42.             total_price -= 300
  43.         elif total_price >= 800:
  44.             total_price -= 200
  45.         elif total_price >= 500:
  46.             total_price -= 100
  47.         print(total_price)

  48.         print("活动2折后价:%.2f"%total_price)
  49.     elif int(total_price) == int(temp):
  50.         print('不满足活动条件,未参与活动!')
  51.         sale = 0
  52.     while True:
  53.         try:
  54.             payment = int(input("请输入付款金额:"))
  55.             break
  56.         except ValueError:
  57.             print('输入不合法!请重新输入!')

  58.     margin = payment - total_price

  59.     if margin >= 0:
  60.         print("找零:", margin)
  61.     else:
  62.         print(f"还差{-margin}元,已记账")
  63.     goods = '|商品货号:{:^3}   |商品单价:{:^3}   |商品数量:{:^3}    |原价:{:^5}    |参与活动:{:^2}    |活动后价格:{:^5}   |实付款:{:^5}    |找零或欠账:{:^5}\n'\
  64.         .format(commodity,price,amount,temp,sale,total_price,payment,margin)
  65.     with open('Goods.txt','a',encoding='utf-8') as f:
  66.         f.write(goods)
复制代码

如果帮助到你了 给个最佳吧~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-5-16 10:46:16 | 显示全部楼层
qiuyouzhi 发表于 2020-5-15 18:52
为啥要写俩while循环呢?
直接一个while True,然后再设置条件退出不就好了??

网上百度的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-16 10:48:02 | 显示全部楼层

你输入多次商品后,可以在这个这个脚本文件下找到txt文件的,打开里面有你输入的内容
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-16 10:51:39 | 显示全部楼层
Twilight6 发表于 2020-5-16 02:29
半夜睡不着,代码全部帮你敲好了,大改了一下

如果帮助到你了 给个最佳吧~
  1. 请输入商品货号(输入Esc退出程序):1633
  2. 请输入商品单价:168
  3. 请输入商品数量:3
  4. 总价:504.00
  5. 现在本店有两种活动,输入1,2进行选择~
  6. 1.1件8.8折,2件7.8折
  7. 2.满500减100,满800减200,满1000减300
  8. 请输入折扣活动:1
  9. 活动1折后价:393.12
  10. 请输入付款金额:400
  11. 找零: 6.8799999999999955
  12. 请输入商品货号(输入Esc退出程序):Esc
  13. >>>


  14. 请输入商品货号(输入Esc退出程序):1633
  15. 请输入商品单价:262
  16. 请输入商品数量:3
  17. 总价:786.00
  18. 现在本店有两种活动,输入1,2进行选择~
  19. 1.1件8.8折,2件7.8折
  20. 2.满500减100,满800减200,满1000减300
  21. 请输入折扣活动:1
  22. 活动1折后价:613.08
  23. 请输入付款金额:650
  24. 找零: 36.91999999999996
  25. 请输入商品货号(输入Esc退出程序):
  26. 请输入商品单价:
  27. 输入不合法!请重新输入!
  28. 请输入商品货号(输入Esc退出程序):
  29. 请输入商品单价:1636
  30. 输入不合法!请重新输入!
  31. 请输入商品货号(输入Esc退出程序):
复制代码


是不是搞错了老哥,这个是运行结果
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-16 10:52:24 | 显示全部楼层
ARONGLIN 发表于 2020-5-16 10:51
是不是搞错了老哥,这个是运行结果

文本 在你的这个代码文件夹下!!!!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-16 11:19:25 | 显示全部楼层
qiuyouzhi 发表于 2020-5-15 18:52
为啥要写俩while循环呢?
直接一个while True,然后再设置条件退出不就好了??

一个while,设置退出不能跳出来,我想的流程是:连续添加商品,然后在选折扣,最后再结账。
现在连续添加商品这里不能循环就很难受
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-16 11:21:19 | 显示全部楼层
Twilight6 发表于 2020-5-16 10:48
你输入多次商品后,可以在这个这个脚本文件下找到txt文件的,打开里面有你输入的内容

哦哦看到了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-16 11:26:35 | 显示全部楼层
Twilight6 发表于 2020-5-16 10:48
你输入多次商品后,可以在这个这个脚本文件下找到txt文件的,打开里面有你输入的内容

谢谢啦
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-19 13:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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