鱼C论坛

 找回密码
 立即注册
查看: 1447|回复: 4

[已解决]第五课动动手第一个问题关于判断数据类型的语句(第一个if后条件的写法)

[复制链接]
发表于 2021-2-5 00:54:56 | 显示全部楼层 |阅读模式

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

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

x
想问问判断数据类型的时候为什么不可以这么写(如下面代码,注释部分是我遇到的问题),运行出的结果输出一直是 “输入的数字类型有误,请重新输入”,谢谢大家!

import random

times = 3
secret = random.randint(1,10)
guess = 0
print ('猜一猜心中想的是哪个数字:', end='')

while guess !=secret and times >0 :
    temp = input ()

   if isinstance(temp, int) == True :#为什么不可以这么写,参考答案这里写的是temp.isdigit()#
        guess = int (temp)
        if guess == secret:
            print ('right')
        else :
            if guess > secret :
                print ('大了大了')
            else :
                print ('小了小了')
            if times >1 :
                print ('再试一次吧', end ='')
            else :
                print ('机会用光了')
    else :
        print ('输入的数字类型有误,请重新输入', end ='')

    times = times -1
print ('游戏结束了')
最佳答案
2021-2-5 07:37:27

input 函数的作用是等待用户输入并将其转化为字符串后返回

所以 input 函数返回的数据类型永远是 str 字符串

这导致了你 if 的  isinstance(temp, int) 函数返回的永远是 False

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-2-5 01:03:39 | 显示全部楼层
input()函数获得用户输入的,永远是字符串类型,不信可以测试一下
>>> type(input())

<class 'str'>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2021-2-5 07:37:27 | 显示全部楼层    本楼为最佳答案   

input 函数的作用是等待用户输入并将其转化为字符串后返回

所以 input 函数返回的数据类型永远是 str 字符串

这导致了你 if 的  isinstance(temp, int) 函数返回的永远是 False

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

使用道具 举报

 楼主| 发表于 2021-2-5 09:59:49 | 显示全部楼层
Twilight6 发表于 2021-2-5 07:37
input 函数的作用是等待用户输入并将其转化为字符串后返回

所以 input 函数返回的数据类型永远是 str  ...

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

使用道具 举报

 楼主| 发表于 2021-2-5 10:11:37 | 显示全部楼层
笨鸟学飞 发表于 2021-2-5 01:03
input()函数获得用户输入的,永远是字符串类型,不信可以测试一下
>>> type(input())

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-16 13:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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