鱼C论坛

 找回密码
 立即注册
查看: 47|回复: 5

s.isdigit 和 isinstance(s,int) 的选择?

[复制链接]
发表于 3 天前 | 显示全部楼层 |阅读模式

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

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

x
为什么图中画红色部分【temp.isdigit():】{图1}改成【isinstance(temp,int)】{图2}就无法运行了呢?

图1

图1

图2

图2
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 3 天前 | 显示全部楼层

回帖奖励 +5 鱼币

本帖最后由 逃兵 于 2021-4-8 19:16 编辑

因为input()函数返回的是一个字符串

你输入的是213

返回的结果是 '213'

temp = '213'

'213'是字符串,不是整型了,isinstance(temp,int)永远返回False



isdigit()是用来判断字符串是不是由纯数字组成

temp = '213'

temp是由纯数字组成的字符串,所以temp.isdigit()返回True
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 3 天前 | 显示全部楼层
本帖最后由 肖-肖 于 2021-4-8 19:21 编辑

可能input默认接收将你输入的东西的类型转为字符串类型了吧!
所以用isinstance判断的时候:是判断一个字符串是不是整型数字或浮点型的
你输入的1234是一个字符串,不是数字类型的
所以永远为判断的结果永远为False.
.isdigit()是判断一个字符串的内容是否为整数的,所以用这个是可以的!
它们两者的区别详情见下图:
ls18.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 3 天前 | 显示全部楼层
逃兵 发表于 2021-4-8 19:13
因为input()函数返回的是一个字符串

你输入的是213

明白了,感谢解答!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 3 天前 | 显示全部楼层
肖-肖 发表于 2021-4-8 19:18
可能input默认接收将你输入的东西的类型转为字符串类型了吧!
所以用isinstance判断的时候:是判断一个字 ...

好的,明白啦,感谢解答!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 3 天前 | 显示全部楼层
IEECO 发表于 2021-4-8 19:51
好的,明白啦,感谢解答!!

不客气( ̄︶ ̄)↗ 
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2021-4-11 21:38

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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