18798332503 发表于 2021-3-12 14:24:19

课后作业

import random
answer = random.randint(0, 12)

temp = input('不妨猜一下小甲鱼心里想的一个数:')
guess = int(temp)
times = 1

while (guess != answer) and (times < 3):
    if guess > answer:
      print('嘿!大了大了!')
    if guess < answer:
      print('嘿!小了小了!')

    temp = input('请在试试吧:')
    guess = int(temp)
    times += 1

if (guess == answer) and (times <= 3):
    print('小伙子不简单!这都被你猜对了!')
    print('不过没有奖励哦!')
else:
    print("三次机会都猜不对,不和你玩了!")
input()


while (guess != answer) and (times < 3):和if (guess == answer) and (times <= 3):书上这两处的times为什么一个是< 另一个是<=。都改成<次数也是对的,还是説下面的(times <= 3)有什么特殊意义?
   

yuedong 发表于 2021-3-12 14:46:12

关键就在于第三次,你试一下第三次再猜中
times记录的是猜的次数即机会
如果下面的是<3,那么第三次猜对的话它就会返回最后一机会用完了

jackz007 发表于 2021-3-12 15:08:19

本帖最后由 jackz007 于 2021-3-12 15:11 编辑

      < 和 <= 的区别,当 times 的值是 0、1、2 时,times < 3 和 times <= 3 的值一样,都是 True,然而,当 times = 3 时,差异就出来了,times < 3 的值是 False,times <= 3的值仍然是 True。当然,如果 times = 4,那么,times < 3 和 times <= 3 的值又一样了,都是 False。

      这个代码循环 3 次
times = 0
while times < 3:
    . . . . . .
    times += 1
   这个代码循环 4 次
times = 0
while times <= 3:
    . . . . . .
    times += 1

18798332503 发表于 2021-3-13 22:45:48

jackz007 发表于 2021-3-12 15:08
< 和

那我想问一下,之后敲代码都用相同的比较操作符,就像上面代码一样,也没有问题的吧?

18798332503 发表于 2021-3-13 22:46:18

yuedong 发表于 2021-3-12 14:46
关键就在于第三次,你试一下第三次再猜中
times记录的是猜的次数即机会
如果下面的是<3,那么第三次猜对 ...

了解,蟹蟹

jackz007 发表于 2021-3-13 23:21:53

18798332503 发表于 2021-3-13 22:45
那我想问一下,之后敲代码都用相同的比较操作符,就像上面代码一样,也没有问题的吧?

      根据需要确定,你也可以实际测试,看过效果然后再确定。
页: [1]
查看完整版本: 课后作业