神奇的二哈 发表于 2022-3-19 10:11:52

小白课后作业求助

temp = input("不妨猜一下小甲鱼现在心里想的是哪个数字:")
while type(temp) != type(1):
    print("抱歉,输入不合法,", end='')
    temp = input("请输入一个整数:")

我想请教一下,while type(temp) != type(1):这一行代码,type(temp) != type(1)这是什么表达方式啊,尤其是后边的type(1)指的是
还希望各位大佬不吝赐教

isdkz 发表于 2022-3-19 10:13:35

type 可以获取对象的类型,type(1) 没必要,直接写 int 就行

wp231957 发表于 2022-3-19 10:21:08

type(1) 难道不是测试数字1的类型,是否是int

神奇的二哈 发表于 2022-3-19 11:04:21

wp231957 发表于 2022-3-19 10:21
type(1) 难道不是测试数字1的类型,是否是int

还想问一下,他这个是必须得从1开始测试嘛,从别的数字可以嘛

wp231957 发表于 2022-3-19 11:06:03

神奇的二哈 发表于 2022-3-19 11:04
还想问一下,他这个是必须得从1开始测试嘛,从别的数字可以嘛

当然是随便一个整数了,你要写2587也是可以的

神奇的二哈 发表于 2022-3-19 11:08:51

isdkz 发表于 2022-3-19 10:13
type 可以获取对象的类型,type(1) 没必要,直接写 int 就行

嗷嗷明白,那如果使用type(1)这种形式的话,里边这个数字1是不是可以替换成别的任意数字

神奇的二哈 发表于 2022-3-19 11:09:22

wp231957 发表于 2022-3-19 11:06
当然是随便一个整数了,你要写2587也是可以的

好的,感谢{:5_108:}

isdkz 发表于 2022-3-19 11:09:50

神奇的二哈 发表于 2022-3-19 11:08
嗷嗷明白,那如果使用type(1)这种形式的话,里边这个数字1是不是可以替换成别的任意数字

对的,只要是整数,type 得到的结果都是 int

神奇的二哈 发表于 2022-3-19 11:12:05

isdkz 发表于 2022-3-19 11:09
对的,只要是整数,type 得到的结果都是 int

明白了,十分感谢{:5_109:}

isdkz 发表于 2022-3-19 11:16:40

神奇的二哈 发表于 2022-3-19 11:12
明白了,十分感谢

但是你的代码有一个问题,就是通过 input 获取到的都是 字符串,

所以你的条件永远不会被满足,因为不论你输入的是什么,type(temp) 得到的都是 str,

所以建议你把 type(temp) != type(1) 改成 not temp.isdigit(),

字符串的 isdigit 方法就是用来判断字符串是不是整数字符串的。

神奇的二哈 发表于 2022-3-19 11:26:21

大佬还想问一下,他后边还一个类似的,代码是这样的
temp = input("不妨猜一下小甲鱼现在心里想的是哪个数字:")
while not isinstance(temp, int):
    print("抱歉,输入不合法,", end='')
    temp = input("请输入一个整数:")

他这一行代码中while not isinstance(temp, int):,not用法我明白,他后边有个isinstance,表示的是什么意思,这是个什么用法,括号里(temp, int)这是什么表达方式

神奇的二哈 发表于 2022-3-19 14:37:07

isdkz 发表于 2022-3-19 11:16
但是你的代码有一个问题,就是通过 input 获取到的都是 字符串,

所以你的条件永远不会被满足,因为 ...

通透,十分感谢明白了{:5_106:}
页: [1]
查看完整版本: 小白课后作业求助