liuxiuqing 发表于 2020-4-18 15:21:59

零基础教学教材3.8中代码为什么times <= 3就不行

#三次机会才一个1-10的随机数
import random

secert = random.randint(1,10)
temp = input("请输入一个数字:")
guess = int(temp)
times = 1

while (guess != secert) and (times < 3):
    if guess > secert:
      print("大了兄弟")
    else:
      print("小了兄弟")
    temp = input("再给一次机会:")
    guess = int(temp)
    times = times + 1

#if times < 3:
if guess == secert:
    print("你可真棒 猜对了")
else:
    print("抱歉 三次机会都没猜中 真笨")

qiuyouzhi 发表于 2020-4-18 15:31:52

因为<=3就会多一次(3也符合条件,到4才会退出循环)

liuxiuqing 发表于 2020-4-18 15:35:08

qiuyouzhi 发表于 2020-4-18 15:31
因为

是的 我测试了 但是里边的原理没太明白 哈哈哈哈 之后仔细一想是先有的判断 后又的times + 1

qiuyouzhi 发表于 2020-4-18 15:37:24

liuxiuqing 发表于 2020-4-18 15:35
是的 我测试了 但是里边的原理没太明白 哈哈哈哈 之后仔细一想是先有的判断 后又的times + 1

那就设个最佳答案吧~

liuxiuqing 发表于 2020-4-18 15:39:14

qiuyouzhi 发表于 2020-4-18 15:37
那就设个最佳答案吧~

那我在请教一下 为啥#if times < 3:
if guess == secert: 这两个都可啊

qiuyouzhi 发表于 2020-4-18 15:46:33

liuxiuqing 发表于 2020-4-18 15:39
那我在请教一下 为啥#if times < 3:
if guess == secert: 这两个都可啊

if times小于3是因为最多猜3次,如果times等于3就是猜的次数过长,只有猜对了
times才会小于3.
那个if guess == secret就不说了吧,输入的和答案相等。

liuxiuqing 发表于 2020-4-18 15:53:01

qiuyouzhi 发表于 2020-4-18 15:46
if times小于3是因为最多猜3次,如果times等于3就是猜的次数过长,只有猜对了
times才会小于3.
那个if...

好的谢谢
页: [1]
查看完整版本: 零基础教学教材3.8中代码为什么times <= 3就不行