kongyunfei 发表于 2021-2-23 15:58:01

Python 033 讲 动动手第0题

import random

secret = random.randint(1,10)
print('------------------我爱鱼C工作室------------------')
temp = input("不妨猜一下小甲鱼现在心里想的是哪个数字:")
try:   
    guess = int(temp)
except ValueError:
    print('输入错误!')
    guess = secret
while guess != secret:
    temp = input("哎呀,猜错了,请重新输入吧:")
    guess = int(temp)
    if guess == secret:
      print("我草,你是小甲鱼心里的蛔虫吗?!")
      print("哼,猜中了也没有奖励!")
    else:
      if guess > secret:
            print("哥,大了大了~~~")
      else:
            print("嘿,小了,小了~~~")
print("游戏结束,不玩啦^_^")


想请问 except ValueError:里的guesee=secret是什么用意

昨非 发表于 2021-2-23 16:05:01

当输入有误时,运行   guess = secret
这样,下面执行到while guess != secret:时,条件不成立,直接可以跳过while循环
结束运行

逃兵 发表于 2021-2-23 16:05:29

如果输入错误的话

guess = secret
给guess赋值随机生成的数secret

程序跳过while循环,直接print("游戏结束,不玩啦^_^")结束

------------------我爱鱼C工作室------------------
不妨猜一下小甲鱼现在心里想的是哪个数字:a
输入错误!
游戏结束,不玩啦^_^
>>>

jackz007 发表于 2021-2-23 16:15:26

本帖最后由 jackz007 于 2021-2-23 16:26 编辑

      为了过这一关
while guess != secret:
      因为,如果 guess 不等于 secret 的话,就无法进入 while 循环。

      这个代码有一个严重的问题,就是代码逻辑的风格不统一,输入检查只是在代码的开头有,到了最为核心的 while 循环内反而没有。
import random

secret = random.randint(1,10)
print('------------------我爱鱼C工作室------------------')
print("不妨猜一下小甲鱼现在心里想的是哪个数字。")
while True:
    while True:
      print()
      temp = input("请输入整数:")
      try:   
            guess = int(temp)
            break
      except:
            print("输入错误,%s 不是一个整数。" % temp)
    if guess == secret:
      print("我草,你是小甲鱼心里的蛔虫吗?!")
      print("哼,猜中了也没有奖励!")
      break
    else:
      if guess > secret:
            print("哥,大了大了~~~")
      else:
            print("嘿,小了,小了~~~")
      print("再试一次吧。")
print("游戏结束,不玩啦^_^")

Peteryo01223 发表于 2021-2-23 16:28:36

guess = secret # 这里并不是真要赋值,而仅仅是通过赋值行为,让程序直接结束,打印最后的结束语。一旦输入不合格,程序到此,也就不运行了。

kongyunfei 发表于 2021-2-23 16:46:57

逃兵 发表于 2021-2-23 16:05
如果输入错误的话

guess = secret


感谢
页: [1]
查看完整版本: Python 033 讲 动动手第0题