Ddl_terminator 发表于 2021-2-5 00:54:56

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

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

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 01:03:39

input()函数获得用户输入的,永远是字符串类型,不信可以测试一下
>>> type(input())

<class 'str'>

Twilight6 发表于 2021-2-5 07:37:27


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

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

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

Ddl_terminator 发表于 2021-2-5 09:59:49

Twilight6 发表于 2021-2-5 07:37
input 函数的作用是等待用户输入并将其转化为字符串后返回

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

谢谢!!

Ddl_terminator 发表于 2021-2-5 10:11:37

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

谢谢!!
页: [1]
查看完整版本: 第五课动动手第一个问题关于判断数据类型的语句(第一个if后条件的写法)