鱼C论坛

 找回密码
 立即注册
查看: 2267|回复: 6

[已解决]面包店打折程序-有空的大神帮忙看看

[复制链接]
发表于 2021-1-14 10:22:36 | 显示全部楼层 |阅读模式

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

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

x
面包店打折.jpg
最佳答案
2021-1-14 10:44:01
本帖最后由 qq1151985918 于 2021-1-14 10:52 编辑

下次记得发代码,不是谁都像我给你再敲一遍
print('面包店正在打折,活动正在进行中。。。')

while True:
    d_day = input('请输入中文星期:')
    if d_day not in ['星期一','星期二','星期三','星期四','星期五','星期六','星期日']:
        print('输入有误,请重新输入')
        continue
    else:
        break
while True:
    d_time = int(input('请输入时间(小时):'))
    if d_time < 0 or d_time > 23:
        print('输入有误,请重新输入')
        continue
    else:
        break
if (d_day == '星期二' and 19 <= d_time <= 20 or
    d_day == '星期六' and 17 <= d_time <= 18 ):
    print('恭喜获得打折!')
else:
    print('对不起,活动结束!')
print('面包店正在打折,活动正在进行中······')

while True:
    d_day = input('请输入中文星期(如星期一):')
    while not d_day == ('星期一' or '星期二' or '星期三' or \
          '星期四' or '星期五' or '星期六' or '星期日'):

        #这里是问题1:
        #你用括号括起来也没用
        #语法应该是 d_day == '星期一' or d_day == '星期二',不能省略
        #省略了之后就是 d_day == '星期一' or '星期二'
        #而 '星期二' 为 True
        #同时问题2:
        # not 不是这样用的
        # not 前应该有比较参数
        #你的情况更适合用不等于 !=
        #下边情况一样的
        d_day = input('输入有误!请重新输入中文星期(如星期一):')
   
        
               
    d_time = int(input('请输入时间中的小时(范围:0~23):'))
    while not (d_time>=0 and d_time<=23):
        d_time = input('输入有误!请输入时间中的小时(范围:0~23):')


   
    if ((d_day == '星期二') and (19<=d_time and d_time<=20)) or \
       ((d_day == '星期六') and (17<=d_time and d_time<=18)):
        print('恭喜你,获得打折优惠!')
              
    else:
        print('对不起,活动结束,下次再来!')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-14 10:29:49 | 显示全部楼层
本帖最后由 heidern0612 于 2021-1-14 10:30 编辑

while not d_time ==(0,23):    这个写法没见过。

一般都是d_time<0 or d_time >23.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-14 10:42:54 | 显示全部楼层
heidern0612 发表于 2021-1-14 10:29
while not d_time ==(0,23):    这个写法没见过。

一般都是d_time23.

谢谢,我改了,还是不行。
前面输入星期一可以,但输入星期二就不行了。

代码如下:

print('面包店正在打折,活动正在进行中······')

while True:
    d_day = input('请输入中文星期(如星期一):')
    while not d_day == ('星期一' or '星期二' or '星期三' or \
          '星期四' or '星期五' or '星期六' or '星期日'):
        d_day = input('输入有误!请重新输入中文星期(如星期一):')
   
        
               
    d_time = int(input('请输入时间中的小时(范围:0~23):'))
    while not (d_time>=0 and d_time<=23):
        d_time = input('输入有误!请输入时间中的小时(范围:0~23):')


   
    if ((d_day == '星期二') and (19<=d_time and d_time<=20)) or \
       ((d_day == '星期六') and (17<=d_time and d_time<=18)):
        print('恭喜你,获得打折优惠!')
              
    else:
        print('对不起,活动结束,下次再来!')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-14 10:44:01 | 显示全部楼层    本楼为最佳答案   
本帖最后由 qq1151985918 于 2021-1-14 10:52 编辑

下次记得发代码,不是谁都像我给你再敲一遍
print('面包店正在打折,活动正在进行中。。。')

while True:
    d_day = input('请输入中文星期:')
    if d_day not in ['星期一','星期二','星期三','星期四','星期五','星期六','星期日']:
        print('输入有误,请重新输入')
        continue
    else:
        break
while True:
    d_time = int(input('请输入时间(小时):'))
    if d_time < 0 or d_time > 23:
        print('输入有误,请重新输入')
        continue
    else:
        break
if (d_day == '星期二' and 19 <= d_time <= 20 or
    d_day == '星期六' and 17 <= d_time <= 18 ):
    print('恭喜获得打折!')
else:
    print('对不起,活动结束!')
print('面包店正在打折,活动正在进行中······')

while True:
    d_day = input('请输入中文星期(如星期一):')
    while not d_day == ('星期一' or '星期二' or '星期三' or \
          '星期四' or '星期五' or '星期六' or '星期日'):

        #这里是问题1:
        #你用括号括起来也没用
        #语法应该是 d_day == '星期一' or d_day == '星期二',不能省略
        #省略了之后就是 d_day == '星期一' or '星期二'
        #而 '星期二' 为 True
        #同时问题2:
        # not 不是这样用的
        # not 前应该有比较参数
        #你的情况更适合用不等于 !=
        #下边情况一样的
        d_day = input('输入有误!请重新输入中文星期(如星期一):')
   
        
               
    d_time = int(input('请输入时间中的小时(范围:0~23):'))
    while not (d_time>=0 and d_time<=23):
        d_time = input('输入有误!请输入时间中的小时(范围:0~23):')


   
    if ((d_day == '星期二') and (19<=d_time and d_time<=20)) or \
       ((d_day == '星期六') and (17<=d_time and d_time<=18)):
        print('恭喜你,获得打折优惠!')
              
    else:
        print('对不起,活动结束,下次再来!')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-14 11:16:15 | 显示全部楼层
qq1151985918 发表于 2021-1-14 10:44
下次记得发代码,不是谁都像我给你再敲一遍

,哥,
,谢谢这么详细的注释,对我这新手非常有用!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-14 11:37:27 | 显示全部楼层
xandersam 发表于 2021-1-14 11:16
,哥,
,谢谢这么详细的注释,对我这新手非常有用!

不客气,好好学。我在你基础上又给你改了下,不再是我自己敲的那个,你再看看应该对你也有些好处
print('面包店正在打折,活动正在进行中······')

while True:
    d_day = input('请输入中文星期(如星期一),输入x退出:')
    if d_day in ['x','X']:
        break
    
    while d_day not in ('星期一' , '星期二' , '星期三', \
          '星期四' , '星期五' , '星期六' , '星期日'):
        #这次我是在你的基础上改的而不是我自己重新敲的
        #我是想说, not 也是可以用的,一般要起判断作用的话 就是这种用法
        #而单单只是用 not 就需要 not True 或者 not False
        #就是我下边代码中 not 的用法

        d_day = input('输入有误!请重新输入中文星期(如星期一):')
   
        
               
    d_time = input('请输入时间中的小时(范围:0~23):')
    while not d_time.isdigit() or not (int(d_time)>=0 and int(d_time)<=23):
        d_time = input('输入有误!请输入时间中的小时(范围:0~23):')
        #这里我用的 not 就是前边没有条件判断参数
        #但是我选择的就是 not 后边的条件只有 True 或者 False
        #这里应该你在理解下,并不难
        # isdigit()是判断字符串是否只由数字组成
    d_time = int(d_time)

    if ((d_day == '星期二') and (19<=d_time and d_time<=20)) or \
       ((d_day == '星期六') and (17<=d_time and d_time<=18)):
        print('恭喜你,获得打折优惠!')
              
    else:
        print('对不起,活动结束,下次再来!')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-14 16:27:50 | 显示全部楼层
qq1151985918 发表于 2021-1-14 11:37
不客气,好好学。我在你基础上又给你改了下,不再是我自己敲的那个,你再看看应该对你也有些好处

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-16 19:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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