鱼C论坛

 找回密码
 立即注册
查看: 2038|回复: 6

[已解决]关于isinstance返回值的使用方法求助

[复制链接]
发表于 2020-10-3 21:33:16 | 显示全部楼层 |阅读模式

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

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

x
求大佬指出我的错误再哪里  头疼啊

import random
secret = random.randint(1,10)
guess = int(input("猜一下我心里面想的数字吧:"))
while isinstance(guess,int):
    while guess != secret:
        guess = int(input("猜错了,重新猜:"))
        if guess == secret:
            print("哦操 你是我的蛔虫的吗")
            print("猜中了也没有奖励")
        else:
            if guess > secret :
                print("嘿,大了,大了")
            else:
                print("哥,小了 小了")
        print("游戏结束,不玩了^-^")
print("输入有误")
最佳答案
2020-10-3 21:50:16
这里不药用isinstance了,int强制转换字符串失败时会报错,还是用isdigit这样,然后下面再调整下顺序和逻辑
  1. import random
  2. secret = random.randint(1,10)
  3. print(secret)
  4. guess = input("猜一下我心里面想的数字吧:")
  5. while guess.isdigit():
  6.     guess=int(guess)
  7.     if guess != secret:
  8.         if guess > secret :
  9.             print("嘿,大了,大了")
  10.         else:
  11.             print("哥,小了 小了")
  12.         guess = input("猜错了,重新猜:")
  13.     else:
  14.         print("哦操 你是我的蛔虫的吗")
  15.         print("猜中了也没有奖励")
  16.         print("游戏结束,不玩了^-^")
  17.         break
  18. else:
  19.     print("输入有误")
复制代码

我看不出我的问题再哪里

我看不出我的问题再哪里
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-10-3 21:46:53 | 显示全部楼层
本帖最后由 kylin121380 于 2020-10-3 21:50 编辑

你while条件永远为真,猜中了也没有跳出循环,如果猜错了,直接再次输入,没有提示大了还是小了,最后两句print提示有问题
  1. import random
  2. secret = random.randint(1,10)
  3. try:
  4.     guess = int(input("猜一下我心里面想的数字吧:"))
  5.     while guess != secret:
  6.         if guess > secret:
  7.             print("嘿,大了,大了")
  8.         else:
  9.             print("哥,小了 小了")
  10.         guess = int(input("猜错了,重新猜:"))
  11.     print("哦操 你是我的蛔虫的吗")
  12.     print("猜中了也没有奖励")
  13.     print("游戏结束,不玩了^-^")
  14. except:
  15.     print('请输入整型数!')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-3 21:50:16 | 显示全部楼层    本楼为最佳答案   
这里不药用isinstance了,int强制转换字符串失败时会报错,还是用isdigit这样,然后下面再调整下顺序和逻辑
  1. import random
  2. secret = random.randint(1,10)
  3. print(secret)
  4. guess = input("猜一下我心里面想的数字吧:")
  5. while guess.isdigit():
  6.     guess=int(guess)
  7.     if guess != secret:
  8.         if guess > secret :
  9.             print("嘿,大了,大了")
  10.         else:
  11.             print("哥,小了 小了")
  12.         guess = input("猜错了,重新猜:")
  13.     else:
  14.         print("哦操 你是我的蛔虫的吗")
  15.         print("猜中了也没有奖励")
  16.         print("游戏结束,不玩了^-^")
  17.         break
  18. else:
  19.     print("输入有误")
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-3 21:52:52 | 显示全部楼层
  1. import random

  2. secret = random.randint(1,10)
  3. guess = int(input("猜一下我心里面想的数字吧:"))
  4. while isinstance(guess,int): #判断是否转换为整型(没啥意义,因为如果不是整型,上一行就会报错)
  5.     while guess != secret: #猜错的情况
  6.         guess = int(input("猜错了,重新猜:"))
  7.         if guess == secret:
  8.             print("哦操 你是我的蛔虫的吗")
  9.             print("猜中了也没有奖励")   
  10.             print("游戏结束,不玩了^-^")
  11.         else:
  12.             if guess > secret :
  13.                 print("嘿,大了,大了")
  14.             else:
  15.                 print("哥,小了 小了")
  16.     else: #猜对的情况 [你这里缺少]
  17.         print("哦操 你是我的蛔虫的吗")
  18.         print("猜中了也没有奖励")
  19.         print("游戏结束,不玩了^-^")
  20.         break         
  21. else:
  22.     print("输入有误") #如果没有进入循环,则打印输入错误
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-3 21:55:55 | 显示全部楼层

你这也有问题的,非数字会报错,而且猜对了后输出两次“猜中了”
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-3 21:58:24 | 显示全部楼层
疾风怪盗 发表于 2020-10-3 21:55
你这也有问题的,非数字会报错,而且猜对了后输出两次“猜中了”

确实
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2020-10-4 08:57:23 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-28 00:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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