鱼C论坛

 找回密码
 立即注册
查看: 1714|回复: 9

[已解决]求助,为什么while设置条件之后,不起作用,尤其是time参数

[复制链接]
发表于 2020-3-16 23:18:49 | 显示全部楼层 |阅读模式

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

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

x
#提前设定一个数值,有三次机会猜测1-10之间的数,不成功,游戏结束
answer=8
time=0
temp=input("enter a number which is between 1 and 10:")
guess =int(temp)
if answer ==guess:
       print("your sister is gorgerousif,game over")
       assert(answer !=guess)
else:
       if answer<guess:
          print("bigger,you still have 2 chance")
          time=1+time
          print(time)
       else:
          print("litter,you still have 2 chance")
          time=1+time
          print(time)
         
while guess!=8 & time<=3:
        temp=input("fault,try again:")
        guess =int(temp)
        if answer ==guess:
            print("your sister is gorgerousif,game over")
            break
        else:
                if answer<guess:
                    print("bigger")
                    time=1+time
                    print(time)
                else:
                    print("litter")
                    time=1+time
                    print(time)

最佳答案
2020-3-16 23:37:05
本帖最后由 sunrise085 于 2020-3-16 23:38 编辑
猪猪虾 发表于 2020-3-16 23:34
不行,还是不对,我甚至为了终止程序,强行插入终止语句,按道理来说是不需要的


哈哈,不好意思看错了。你的错误是因为用错符号了。逻辑运算符与不是& 而是and。
另外,你在循环外已经有过一次了,条件应该为time<3
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-16 23:31:08 | 显示全部楼层
while条件中应该用or,猜对或者次数达到限制都要停止。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-16 23:34:04 | 显示全部楼层
sunrise085 发表于 2020-3-16 23:31
while条件中应该用or,猜对或者次数达到限制都要停止。

不行,还是不对,我甚至为了终止程序,强行插入终止语句,按道理来说是不需要的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-16 23:37:05 | 显示全部楼层    本楼为最佳答案   
本帖最后由 sunrise085 于 2020-3-16 23:38 编辑
猪猪虾 发表于 2020-3-16 23:34
不行,还是不对,我甚至为了终止程序,强行插入终止语句,按道理来说是不需要的


哈哈,不好意思看错了。你的错误是因为用错符号了。逻辑运算符与不是& 而是and。
另外,你在循环外已经有过一次了,条件应该为time<3
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-17 00:18:04 | 显示全部楼层
& 应改为 and
另外你的缩进格式有问题
answer=8
time=0

temp=input("enter a number which is between 1 and 10:")
guess =int(temp)

if answer ==guess:
    print("your sister is gorgerousif,game over")
    assert(answer ==guess)
else:
    if answer<guess:
        print("bigger,you still have 2 chance")
        time=1+time
        print(time)
    else:
        print("litter,you still have 2 chance")
        time=1+time
        print(time)

while guess!=8 and time<3:
    temp=input("fault,try again:")
    guess =int(temp)
    if answer ==guess:
        print("your sister is gorgerousif,game over")
        break
    else:
        if answer<guess:
            print("bigger")
            time=1+time
            print(time)
        else:
            print("litter")
            time=1+time
            print(time)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-17 00:27:56 | 显示全部楼层
本帖最后由 jackz007 于 2020-3-17 00:35 编辑

      楼主的代码重复的太厉害,参考一下下面的代码:
time , c , answer = 3 , 0 , 8
while time - c > 0 : 
    guess = int(input("enter a number which is between 1 and 10:"))
    if answer == guess:
        print("your sister is gorgerousif , game over")
        break
    else :
        c += 1
        if guess > answer : print("bigger")
        else : print("litter")
        if time - c > 0 : print('you still have %d chance\n' % (time - c))
else : print('\nNone of more chance!')
        获取输入、正确性判断、信息显示的代码统统唯一化,可以防止多头输入,多头判断、多头信息显示带来的前后逻辑不一致等各种缺陷和隐患。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-17 12:58:45 | 显示全部楼层
sunrise085 发表于 2020-3-16 23:37
哈哈,不好意思看错了。你的错误是因为用错符号了。逻辑运算符与不是& 而是and。
另外,你在循环外已 ...

谢谢,原来是这个,不能迷信百度答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-17 12:59:58 | 显示全部楼层
XiaoPaiShen 发表于 2020-3-17 00:18
& 应改为 and
另外你的缩进格式有问题

好了谢谢,改了and运行就没毛病了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-17 13:13:13 | 显示全部楼层
jackz007 发表于 2020-3-17 00:27
楼主的代码重复的太厉害,参考一下下面的代码:

        获取输入、正确性判断、信息显示的代码统 ...

学到了,之前我遇到类似情况都是按照我这种重复思路来处理,,,,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-17 13:15:45 | 显示全部楼层
假面的假面 发表于 2020-3-16 23:53
问题根本点是出在没理解while后面和逻辑运算符的关系,
while语句当条件成立的时候继继续执行,但是你用的 ...

好的,十分感谢百忙之中回复我这种菜鸟的问题,我刚刚开始学这个,主要是&符号问题,改成and就可以了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-24 23:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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