鱼C论坛

 找回密码
 立即注册
查看: 1832|回复: 7

关于int()函数一点疑问

[复制链接]
发表于 2017-2-13 19:14:15 | 显示全部楼层 |阅读模式

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

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

x
int()函数既然是取整,那就只能对数字类型进行操作了,如下所示,为何int('5')可以得出5,而int('5.6')又会提示数据类型不对呢。。。搞懵了


>>> int(5)
5
>>> int(5.6)
5
>>> int('5')
5
>>> int('5.6')
Traceback (most recent call last):
  File "<pyshell#167>", line 1, in <module>
    int('5.6')
ValueError: invalid literal for int() with base 10: '5.6'
>>>
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-2-13 19:16:54 From FishC Mobile | 显示全部楼层
5.6是浮点数,不能用int(),可以用float()
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-14 08:33:41 | 显示全部楼层
为何int(5.6)就可以,而int('5.6')就不行。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-14 08:51:46 | 显示全部楼层
int(x, base=10)
Return an integer object constructed from a number or string x, or return 0 if no arguments are given. If x is a number, return x.__int__(). For floating point numbers, this truncates towards zero.
如果x是一个数字返回的是向下取整的整数
If x is not a number or if base is given, then x must be a string, bytes, or bytearray instance representing an integer literal in radix base.
如果x不是一个数字,或者如果给出了base,那么x是一个字符串,字节或bytearray实例,表示一个整数。
我的理解是:int()函数的参数不为数字时,它的参数必须是整数字符串(默认为十进制)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-14 10:39:34 | 显示全部楼层
car2008 发表于 2017-2-14 08:33
为何int(5.6)就可以,而int('5.6')就不行。。。

简单的说吧int(5.6)就是从float->int
int('5')是从str->int
int('5.6')你是要float变成int呢 还是 str变成int呢
你的想法是可以让'5.6'变成5 但是现在大部分编程都只支持从一个类型转换到另一个类型,而无法从一个类型经过另一个类型再变成目标类型
这个功能以后应该会增加,目前市场没这种大量需求,应该不会开发
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-14 15:52:07 | 显示全部楼层
我估计是因为小数点在字符串里和数字混在一起,就好比‘5&6’一样转化不成字符
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2017-2-15 22:10:39 | 显示全部楼层
  1. >>> int(float('5.6'))
  2. 5
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-16 09:14:31 | 显示全部楼层
如果是双引号说明是字符串,里面有特殊字符.,所有报错
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-25 09:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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