鱼C论坛

 找回密码
 立即注册
查看: 47|回复: 5

[已解决]Python 033 讲 动动手第0题

[复制链接]
发表于 4 天前 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
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是什么用意
最佳答案
4 天前
当输入有误时,运行   guess = secret
这样,下面执行到while guess != secret:时,条件不成立,直接可以跳过while循环
结束运行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 4 天前 | 显示全部楼层    本楼为最佳答案   
当输入有误时,运行   guess = secret
这样,下面执行到while guess != secret:时,条件不成立,直接可以跳过while循环
结束运行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 4 天前 | 显示全部楼层
如果输入错误的话

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

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

  1. ------------------我爱鱼C工作室------------------
  2. 不妨猜一下小甲鱼现在心里想的是哪个数字:a
  3. 输入错误!
  4. 游戏结束,不玩啦^_^
  5. >>>
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 4 天前 | 显示全部楼层
本帖最后由 jackz007 于 2021-2-23 16:26 编辑

        为了过这一关
  1. while guess != secret:
复制代码

        因为,如果 guess 不等于 secret 的话,就无法进入 while 循环。

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

  2. secret = random.randint(1,10)
  3. print('------------------我爱鱼C工作室------------------')
  4. print("不妨猜一下小甲鱼现在心里想的是哪个数字。")
  5. while True:
  6.     while True:
  7.         print()
  8.         temp = input("请输入整数:")
  9.         try:   
  10.             guess = int(temp)
  11.             break
  12.         except:
  13.             print("输入错误,%s 不是一个整数。" % temp)
  14.     if guess == secret:
  15.         print("我草,你是小甲鱼心里的蛔虫吗?!")
  16.         print("哼,猜中了也没有奖励!")
  17.         break
  18.     else:
  19.         if guess > secret:
  20.             print("哥,大了大了~~~")
  21.         else:
  22.             print("嘿,小了,小了~~~")
  23.         print("再试一次吧。")
  24. print("游戏结束,不玩啦^_^")
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 4 天前 | 显示全部楼层
guess = secret # 这里并不是真要赋值,而仅仅是通过赋值行为,让程序直接结束,打印最后的结束语。一旦输入不合格,程序到此,也就不运行了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 4 天前 | 显示全部楼层
逃兵 发表于 2021-2-23 16:05
如果输入错误的话

guess = secret

感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1

GMT+8, 2021-2-27 17:41

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表