HUANGyawang123 发表于 2020-8-3 21:10:22

第33讲动动手第0题

import random

secret = random.randint(1,10)
print('我爱鱼C工作室')
temp = input('不妨猜一下小甲鱼现在心里想的是哪个数字:')
guess = temp
try:
    type(guess) == type(1)
      
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('游戏结束,不玩啦')

我标注加粗字体的部分是这样写的,结果不能够显示‘输入错误’,直接进入下边循环了,想知道是哪里的错误,感谢

sunrise085 发表于 2020-8-3 21:14:09

本帖最后由 sunrise085 于 2020-8-3 21:18 编辑

加粗部分是一个逻辑表达式,不会触发异常啊
你可以直接写
try:
    guess = int(temp)
except……

baige 发表于 2020-8-3 21:14:16

本帖最后由 baige 于 2020-8-3 21:19 编辑

py好难

zltzlt 发表于 2020-8-3 21:15:53

应该用 if-else 不是 try-except

Twilight6 发表于 2020-8-3 21:17:20


你应该是想达到这种效果,这样当你输入不是整数时候就会触发 except

而你之前的只是个逻辑判断,不会导致触发异常的:

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('游戏结束,不玩啦')

HUANGyawang123 发表于 2020-8-3 21:52:27

sunrise085 发表于 2020-8-3 21:14
加粗部分是一个逻辑表达式,不会触发异常啊
你可以直接写

明白了,这样做没办法触发异常,感谢
页: [1]
查看完整版本: 第33讲动动手第0题