reflex 发表于 2020-10-24 16:43:47

while循环问题

本帖最后由 reflex 于 2020-10-24 16:44 编辑

import random
secret = random.randint(1,10)
print("-------------------------------------")
temp = input("猜猜我心里想的数字,并打出来:")
guess = int(temp)
while guess == secret:
    print("真厉害,让你猜到了呢!")
    print("不过猜到了也是没有奖励的呢!")
else:
    if guess != secret:
      temp = input("不对!重新猜:")
      guess = int(temp)
    else:
      if guess > secret:
            print("往小了猜!")
      else:
            print("往大了猜!")
print("游戏结束,不玩啦!")
各位大佬 如果这样写的话会出现这样的情况(第二次错误就结束了)
-------------------------------------
猜猜我心里想的数字,并打出来:1
不对!重新猜:2
游戏结束,不玩啦!
>>>

有没有大佬给我解释下原理{:10_285:}

疾风怪盗 发表于 2020-10-24 17:27:07

while条件不要写这个,放在下面的代码用if来判断

冰河星云 发表于 2020-10-24 17:28:30

代码应该写成
import random
secret = random.randint(1,10)
print("-------------------------------------")
temp = input("猜猜我心里想的数字,并打出来:")
guess = int(temp)
while True:
    if guess == secret:
      print("真厉害,让你猜到了呢!")
      print("不过猜到了也是没有奖励的呢!")
      break
    else:
      if guess != secret:
            temp = input("不对!重新猜:")
            guess = int(temp)
            if guess > secret:
                print("往小了猜!")
            else:
                print("往大了猜!")
print("游戏结束,不玩啦!")
如果按你这样写,猜对了就会一直打印 ‘真厉害,让你猜到了呢!’ ‘不过猜到了也是没有奖励的呢!’
猜错了就会像你输出的那样

reflex 发表于 2020-10-24 17:32:10

冰河星云 发表于 2020-10-24 17:28
代码应该写成

如果按你这样写,猜对了就会一直打印 ‘真厉害,让你猜到了呢!’ ‘不过猜到了也是没有奖励 ...

谢谢,学习了 方便注释下break和while True的含义吗 我刚学一点基础也没有{:10_277:}

冰河星云 发表于 2020-10-24 17:35:06

reflex 发表于 2020-10-24 17:32
谢谢,学习了 方便注释下break和while True的含义吗 我刚学一点基础也没有

import random
secret = random.randint(1,10)
print("-------------------------------------")
temp = input("猜猜我心里想的数字,并打出来:")
guess = int(temp)
while True # 一直重复循环:
    if guess == secret:
      print("真厉害,让你猜到了呢!")
      print("不过猜到了也是没有奖励的呢!")
      break # 跳出"while True"循环
    else:
      if guess != secret:
            temp = input("不对!重新猜:")
            guess = int(temp)
            if guess > secret:
                print("往小了猜!")
            else:
                print("往大了猜!")
print("游戏结束,不玩啦!")

while True 就是重复循环
break 就是跳出循环

reflex 发表于 2020-10-24 17:36:49

疾风怪盗 发表于 2020-10-24 17:27
while条件不要写这个,放在下面的代码用if来判断

谢谢 我就是想知道这样写报错的原因教程里看了没理解透 {:10_285:}

reflex 发表于 2020-10-24 17:51:29

冰河星云 发表于 2020-10-24 17:35
while True 就是重复循环
break 就是跳出循环

懂了 非常感谢
页: [1]
查看完整版本: while循环问题