鱼C论坛

 找回密码
 立即注册
查看: 543|回复: 6

这两种结果是什么原因

[复制链接]
发表于 2018-11-27 16:31:44 | 显示全部楼层 |阅读模式

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

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

x
这两种结果是什么原因
QQ截图20181127162941.png
QQ截图20181127163037.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-11-27 16:38:05 | 显示全部楼层
temp是字符串
int后的name是数字才可能等于8
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-11-27 16:45:08 | 显示全部楼层
那 name = int(temp) 就是将name定义为数字?
int不是向下取整,吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-27 16:56:06 | 显示全部楼层
hualuo 发表于 2018-11-27 16:45
那 name = int(temp) 就是将name定义为数字?
int不是向下取整,吗?

name = int(temp)是将你获得的temp变量转化成int型,如果你输入的temp不能转化成int型,会报异常。假如输入的temp为‘1.2’,也会报异常的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-27 17:01:17 | 显示全部楼层
hualuo 发表于 2018-11-27 16:45
那 name = int(temp) 就是将name定义为数字?
int不是向下取整,吗?

对于浮点数也不是向下,是砍掉小数部分,如int(-1.2)
这里实现的是整数字符串转变成int数字
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-27 20:11:06 | 显示全部楼层
因为input输入的是字符串,你要检测的8是数字,字符串'8'跟数字8肯定不对等啊,所以就会显示猜错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-27 21:41:46 | 显示全部楼层
如果用input输入信息的话,输入信息的系统默认数据类型是字符串类型,
如果用int输入信息的话,输入信息的系统默认数据类型是整型
首先,name == 8 当中的8是整型,第一张图的话是用的int()输入,所以输入信息被系统当成了整型,这时 name = 8,不是字符串类型,自然判断条件正确
而第二张图是input()输入,输入的信息会被系统当成字符串类型,这时,name变成了字符串,相当于name的值 = '8',而8是整型,两者数据类型不同,自然不会相等
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-1 22:03

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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