找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 2050|回复: 3

[求助] 刚开始学习python,问一个基础的int()问题

3

主题

5

帖子

5

积分

贫民

积分
5
sword803 发表于 2018-12-30 11:41:52 | 显示全部楼层 |阅读模式
print("shurushuzhi:")
xiangdengflag=False
while xiangdengflag==False:
    b=input()
    c=float(b)
    a=int(c)
    if a>15:
        print('taidale')
    elif a<15:
        print('taixiaole')
    else:
        print('ok,daduile')
        xiangdengflag=True

以上代码,如果输入的是小数,例如12.2,如果去掉float那句就会报错,为什么?int()不能将接收的字符串浮点数,直接转化为整数吗?

回复

使用道具 举报

0

主题

1

帖子

1

积分

贫民

积分
1
chriscxu 发表于 2019-1-1 12:09:07 | 显示全部楼层
b=float(input())
这样就行了
回复 支持 反对

使用道具 举报

0

主题

11

帖子

11

积分

贫民

积分
11
zhouxiong 发表于 2019-1-1 15:18:36 | 显示全部楼层
,字符串 str 转换成整形 int 中,只能包含数字,不能有其他的。要是想保留原数字,可使用 float 。有. 不行
回复 支持 反对

使用道具 举报

0

主题

3

帖子

3

积分

贫民

积分
3
狮灵鹭智 发表于 2019-1-2 13:32:48 | 显示全部楼层
因为int()函数自身的要求就不能转化带有小数点的字符串。输入命令help(int)可以看到,用int()转换str为int时,该str必须在当前进制设置下,能表示为整数。转化float为int时,就无所谓是不是整数了。
input()输出的是一个str,如果不是整数,int()就会报错。

所以正确的方法是和题目中一样,先把str转化为float,再把float转化为int。
回复 支持 反对

使用道具 举报

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

本版积分规则

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