CFNhyuVe 发表于 2021-4-24 13:15:57

请问有哪位可以帮忙解答下疑问吗?我想用while语句循环3次,但实际结果循环了4次?

import random
secret=random.randint(1,10)
n=1
temp=input("猜猜小甲鱼心里想的数字:")
guess=int(temp)
while guess!=secret and n<=3:
    n+=1
    if guess<secret:
      print("猜错了,比正确数字小.")
    else:
      print("猜错了,比正确数字大.")
    temp=input("请重新输入吧:")
    guess=int(temp)
if guess==secret:
    print("恭喜,猜对了!")
else:
    print("猜错了,没机会了")
print("游戏结束")

柿子饼同学 发表于 2021-4-24 13:36:30

本帖最后由 柿子饼同学 于 2021-4-24 13:43 编辑

import random
secret = random.randint(1,10)
n = 1
temp = input("猜猜小甲鱼心里想的数字:")
guess = int(temp)
while guess != secret and n <= 2:#把这里改成2
    n +=1
    if guess < secret:
      print("猜错了,比正确数字小.")
    else:
      print("猜错了,比正确数字大.")
    temp = input("请重新输入吧:")
    guess = int(temp)
if guess == secret:
    print("恭喜,猜对了!")
else:
    print("猜错了,没机会了")
print("游戏结束")


你的意思应该是问三次吧(输入3次数字),你在循环外问了一次了.所以while里再问两次就刚好3次{:10_256:}

CFNhyuVe 发表于 2021-4-24 13:55:15

外面那一次也要进while循环里面去判断大小的吧,n在外面赋值了1,进去while循环后n立马赋值了2,那进行下一次循环的时候n应该就是2,而且我设置了n<=3的条件。那当n=4的时候应该就不循环了,可运行结果是n=4时还运行了一次。

柿子饼同学 发表于 2021-4-24 14:20:05

CFNhyuVe 发表于 2021-4-24 13:55
外面那一次也要进while循环里面去判断大小的吧,n在外面赋值了1,进去while循环后n立马赋值了2,那进行下一 ...

n = 3时,满足条件程序继续运行,到+=1语句时就变成4,但是它还会往下执行,执行完了n变成
5了就不执行了

CFNhyuVe 发表于 2021-4-24 14:38:00

貌似有点明白了,谢谢
页: [1]
查看完整版本: 请问有哪位可以帮忙解答下疑问吗?我想用while语句循环3次,但实际结果循环了4次?