鱼C论坛

 找回密码
 立即注册
查看: 1774|回复: 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这样,然后下面再调整下顺序和逻辑
import random
secret = random.randint(1,10)
print(secret)
guess = input("猜一下我心里面想的数字吧:")
while guess.isdigit():
    guess=int(guess)
    if guess != secret:
        if guess > secret :
            print("嘿,大了,大了")
        else:
            print("哥,小了 小了")
        guess = input("猜错了,重新猜:")
    else:
        print("哦操 你是我的蛔虫的吗")
        print("猜中了也没有奖励")
        print("游戏结束,不玩了^-^")
        break
else:
    print("输入有误")

我看不出我的问题再哪里

我看不出我的问题再哪里
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

你while条件永远为真,猜中了也没有跳出循环,如果猜错了,直接再次输入,没有提示大了还是小了,最后两句print提示有问题
import random
secret = random.randint(1,10)
try:
    guess = int(input("猜一下我心里面想的数字吧:"))
    while guess != secret:
        if guess > secret:
            print("嘿,大了,大了")
        else:
            print("哥,小了 小了")
        guess = int(input("猜错了,重新猜:"))
    print("哦操 你是我的蛔虫的吗")
    print("猜中了也没有奖励")
    print("游戏结束,不玩了^-^")
except:
    print('请输入整型数!')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2020-10-3 21:52:52 | 显示全部楼层
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("猜中了也没有奖励")    
            print("游戏结束,不玩了^-^")
        else:
            if guess > secret :
                print("嘿,大了,大了")
            else:
                print("哥,小了 小了")
    else: #猜对的情况 [你这里缺少]
        print("哦操 你是我的蛔虫的吗")
        print("猜中了也没有奖励")
        print("游戏结束,不玩了^-^")
        break          
else:
    print("输入有误") #如果没有进入循环,则打印输入错误
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

你这也有问题的,非数字会报错,而且猜对了后输出两次“猜中了”
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

确实
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2020-10-4 08:57:23 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-18 13:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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