xandersam 发表于 2021-1-14 10:22:36

面包店打折程序-有空的大神帮忙看看

heidern0612 发表于 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.

xandersam 发表于 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('对不起,活动结束,下次再来!')

qq1151985918 发表于 2021-1-14 10:44:01

本帖最后由 qq1151985918 于 2021-1-14 10:52 编辑

下次记得发代码,不是谁都像我给你再敲一遍{:9_227:}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('对不起,活动结束,下次再来!')

xandersam 发表于 2021-1-14 11:16:15

qq1151985918 发表于 2021-1-14 10:44
下次记得发代码,不是谁都像我给你再敲一遍

{:10_266:},哥,
,谢谢这么详细的注释,对我这新手非常有用!

qq1151985918 发表于 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('对不起,活动结束,下次再来!')

xandersam 发表于 2021-1-14 16:27:50

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

感谢感谢,长知识了
页: [1]
查看完整版本: 面包店打折程序-有空的大神帮忙看看