鱼C论坛

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

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

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

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

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

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

while 1:
    while True:
        commodity = int(input("请输入商品货号:"))
        price = float(input("请输入商品单价:"))
        if(price < 0):
            print("输入不合法!")
        amount = int(input("请输入商品数量:"))
        total_price = price * amount
        print("原价:",total_price)

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

        sale = int(input("请输入折扣活动:"))
        i = 0
    
#结算收银
    
        #打折活动    
        if sale == 1:  
            if amount >= 1:
                total_price1 = total_price * 0.88

            if amount >= 2:
                total_price1 = total_price * 0.78

            print("折后价:",total_price1)

        #满减活动
        if sale == 2:  

            if (total_price >= 500) :
                i += 100
                total_price1 = total_price - i
                

            if (total_price >= 800) :
                i += 100
                total_price1 = total_price - i

            if (total_price >= 1000) :
                i += 100
                total_price1 = total_price - i

            print("折后价:",total_price1)
            
                
            
        else :
            total_price1 = total_price
            print(total_price1)


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


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

        mylog = open('recode.log', mode = 'a',encoding='utf-8')
        for i in range(1):
            print(total_price, file=mylog)
        mylog.close()
        break
最佳答案
2020-5-16 02:29:01
半夜睡不着,代码全部帮你敲好了,大改了一下
while True:
    while True:
        commodity = input("请输入商品货号(输入Esc退出程序):")
        if commodity == 'Esc':
            break
        price = input("请输入商品单价:")
        if not price.isdigit() or not commodity.isdigit() or float(price) <= 0 :  # 判断输入是否为数字 和 是否大于零
            print("输入不合法!请重新输入!")
            continue
        break
    if commodity == 'Esc':
        break
    while True:
        amount = input("请输入商品数量:")
        if not amount.isdigit() and int(amount) < 0:  # 判断输入是否为数字 和 是否大于零
            print("输入不合法!请重新输入!")
        else:
            amount = int(amount)
            total_price = float(price) * amount
            temp = str(int(total_price))
            break

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

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

    # 打折活动
    if sale == '1':
        if amount >= 15:
            total_price = total_price * 0.78

        elif amount >= 10:
            total_price = total_price * 0.88

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

    # 满减活动
    elif sale == '2':

        if total_price >= 1000:
            total_price -= 300
        elif total_price >= 800:
            total_price -= 200
        elif total_price >= 500:
            total_price -= 100
        print(total_price)

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

    margin = payment - total_price

    if margin >= 0:
        print("找零:", margin)
    else:
        print(f"还差{-margin}元,已记账")
    goods = '|商品货号:{:^3}   |商品单价:{:^3}   |商品数量:{:^3}    |原价:{:^5}    |参与活动:{:^2}    |活动后价格:{:^5}   |实付款:{:^5}    |找零或欠账:{:^5}\n'\
        .format(commodity,price,amount,temp,sale,total_price,payment,margin)
    with open('Goods.txt','a',encoding='utf-8') as f:
        f.write(goods)
如果帮助到你了 给个最佳吧~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-15 18:38:56 | 显示全部楼层
while True:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-15 18:44:32 | 显示全部楼层
死循环套死循环,人类迷惑行为
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

……额
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-16 02:29:01 | 显示全部楼层    本楼为最佳答案   
半夜睡不着,代码全部帮你敲好了,大改了一下
while True:
    while True:
        commodity = input("请输入商品货号(输入Esc退出程序):")
        if commodity == 'Esc':
            break
        price = input("请输入商品单价:")
        if not price.isdigit() or not commodity.isdigit() or float(price) <= 0 :  # 判断输入是否为数字 和 是否大于零
            print("输入不合法!请重新输入!")
            continue
        break
    if commodity == 'Esc':
        break
    while True:
        amount = input("请输入商品数量:")
        if not amount.isdigit() and int(amount) < 0:  # 判断输入是否为数字 和 是否大于零
            print("输入不合法!请重新输入!")
        else:
            amount = int(amount)
            total_price = float(price) * amount
            temp = str(int(total_price))
            break

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

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

    # 打折活动
    if sale == '1':
        if amount >= 15:
            total_price = total_price * 0.78

        elif amount >= 10:
            total_price = total_price * 0.88

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

    # 满减活动
    elif sale == '2':

        if total_price >= 1000:
            total_price -= 300
        elif total_price >= 800:
            total_price -= 200
        elif total_price >= 500:
            total_price -= 100
        print(total_price)

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

    margin = payment - total_price

    if margin >= 0:
        print("找零:", margin)
    else:
        print(f"还差{-margin}元,已记账")
    goods = '|商品货号:{:^3}   |商品单价:{:^3}   |商品数量:{:^3}    |原价:{:^5}    |参与活动:{:^2}    |活动后价格:{:^5}   |实付款:{:^5}    |找零或欠账:{:^5}\n'\
        .format(commodity,price,amount,temp,sale,total_price,payment,margin)
    with open('Goods.txt','a',encoding='utf-8') as f:
        f.write(goods)
如果帮助到你了 给个最佳吧~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

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

网上百度的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

你输入多次商品后,可以在这个这个脚本文件下找到txt文件的,打开里面有你输入的内容
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

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


请输入商品货号(输入Esc退出程序):1633
请输入商品单价:262
请输入商品数量:3
总价:786.00
现在本店有两种活动,输入1,2进行选择~
1.1件8.8折,2件7.8折
2.满500减100,满800减200,满1000减300
请输入折扣活动:1
活动1折后价:613.08
请输入付款金额:650
找零: 36.91999999999996
请输入商品货号(输入Esc退出程序):
请输入商品单价:
输入不合法!请重新输入!
请输入商品货号(输入Esc退出程序):
请输入商品单价:1636
输入不合法!请重新输入!
请输入商品货号(输入Esc退出程序):

是不是搞错了老哥,这个是运行结果
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

文本 在你的这个代码文件夹下!!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

使用道具 举报

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

哦哦看到了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

谢谢啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-21 08:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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