鱼C论坛

 找回密码
 立即注册
查看: 1639|回复: 20

[已解决]关于 零基础入门学习的第二课里 int的用法

[复制链接]
发表于 2020-6-22 15:55:00 | 显示全部楼层 |阅读模式

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

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

x
关于零基础入门学习的第二课里面有使用int,int是一个取整形的函数,比如 int(1.52)出来就是1 ,int(5.2)出来就是5,但是当我运行下面脚本后,录入1.52,却提示错误,请各位同学帮忙分析一下原因;

a=input("请输入1-100其中一个数字:")
b=int(a)
if 1 <= b <= 100:
    print("aaa")
else:
    print("bbb")

最佳答案
2020-6-22 15:56:38
hz310000 发表于 2020-6-22 15:55
请输入1-100其中一个数字:1.52
Traceback (most recent call last):
  File "C:%users\Administrator\Des ...




int 不能将小数字符串转化为整型

你可以用 float:
a=input("请输入1-100其中一个数字:")
b=float(a)
if 1 <= b <= 100:
    print("aaa")
else:
    print("bbb")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-6-22 15:55:40 | 显示全部楼层
请输入1-100其中一个数字:1.52
Traceback (most recent call last):
  File "C:\Users\Administrator\Desktop\1.py", line 2, in <module>
    b=int(a)
ValueError: invalid literal for int() with base 10: '1.52'
>>>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-22 15:56:38 | 显示全部楼层    本楼为最佳答案   
hz310000 发表于 2020-6-22 15:55
请输入1-100其中一个数字:1.52
Traceback (most recent call last):
  File "C:%users\Administrator\Des ...




int 不能将小数字符串转化为整型

你可以用 float:
a=input("请输入1-100其中一个数字:")
b=float(a)
if 1 <= b <= 100:
    print("aaa")
else:
    print("bbb")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-6-22 15:57:33 | 显示全部楼层
Twilight6 发表于 2020-6-22 15:56
int 不能将小数字符串转化为整型

你可以用 float:

>>> int(1.52)
1


这样又能出来结果,是怎么解释呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-22 15:58:12 | 显示全部楼层

这个是浮点型 而不是小数字符串
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-22 15:58:27 | 显示全部楼层
Twilight6 发表于 2020-6-22 15:56
int 不能将小数字符串转化为整型

你可以用 float:

你的意思是 =input是把数字转换成字符串了,对吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-22 16:00:36 | 显示全部楼层
如果 input的结果是字符串,那后面的字符串比较大小1-100,又是怎么比较的呢,不是只有数字才能比较大小吗,如果input的结果是数字,那int为啥不能在脚本中进行取整呢,因为单独运行int小数都是可以的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-22 16:00:47 | 显示全部楼层
hz310000 发表于 2020-6-22 15:58
你的意思是 =input是把数字转换成字符串了,对吧

嗯 input 返回的就是字符串
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-22 16:04:28 | 显示全部楼层
Twilight6 发表于 2020-6-22 16:00
嗯 input 返回的就是字符串

如果input返回的是字符串,那int也是针对字符串进行整形?int不是也可以对数字进行整形的吗,也就是说int对字符串进行整形的时候不能是小数,整形的意义不是把小数变成整数去掉小数点后面的值吗,但是如果int对字符串进行整形的意义又是什么呢?因为首先int对字符串的要求是没有小数,既然没有小数就没有整形的必要了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-22 16:05:03 | 显示全部楼层
hz310000 发表于 2020-6-22 16:00
如果 input的结果是字符串,那后面的字符串比较大小1-100,又是怎么比较的呢,不是只有数字才能比较大小吗 ...

int 将字符串转为整型了,并不是比较字符串,还是比较整型之间的大小,input是接收用户输入并将输入的值转为字符串返回

你这 int 就是将字符串转为 整型啊,就是整数

如果字符串比较大小是 依次比较 ASCII码值的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-22 16:06:17 | 显示全部楼层
hz310000 发表于 2020-6-22 16:04
如果input返回的是字符串,那int也是针对字符串进行整形?int不是也可以对数字进行整形的吗,也就是说int ...


不是如果 input 是返回字符串,是一定返回的是字符串!

这里的 int 就是将字符串转化为整型 , 也就是整数

而字符串中的 . int 是无法识别出来是 小数点的意思 导致无法转化
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-22 16:13:04 | 显示全部楼层
本帖最后由 Twilight6 于 2020-6-22 16:24 编辑
hz310000 发表于 2020-6-22 16:04
如果input返回的是字符串,那int也是针对字符串进行整形?int不是也可以对数字进行整形的吗,也就是说int ...


整型、字符串、浮点型都是一种类型,而不是什么意义

而 int 是将其他数值转化为整型的一个 Python 内置函数

纯数值字符串 可以通过 int 来转化为整型(这里指的是只有数字的字符串,或者带负号的数字字符串)

意义是什么? 你就像你把  一加一等于二 转为数学表达  1 + 1 = 2 一样的

两种不同类型的值,为什么不要通过转化呢?

int 转化为整型  str 转化为字符串  float 转化为浮点型
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-22 16:15:16 | 显示全部楼层
>>> b=int("1")
>>> c=b+2
>>> print (c)
3

int 在这里把字符串变成了数字,不然后面的加法就是错的,结果也不会出来3  ,所以我还是不明白,int函数出来的值到底是字符串还是数字

或许int只能对整数型的字符串,或者数值型的小数?但是不能对小数型的字符串?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-22 16:16:39 | 显示全部楼层
>>> b=int("1.01")
Traceback (most recent call last):
  File "<pyshell#4>", line 1, in <module>
    b=int("1.01")
ValueError: invalid literal for int() with base 10: '1.01'
>>> b=int(1.01)
>>>

看来确实是这样,对于字符串里面有小数点的,int会提示出错,但是对数值型的,int会取整
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-22 16:16:42 | 显示全部楼层
hz310000 发表于 2020-6-22 16:15
>>> b=int("1")
>>> c=b+2
>>> print (c)


int 是将其他类型的值转为整型啊   

字符串是 str
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-22 16:18:14 | 显示全部楼层
谢谢各位,提了一个幼稚的问题,却得到更高深的答案,学到了更多的东西
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-22 16:19:06 | 显示全部楼层
hz310000 发表于 2020-6-22 16:18
谢谢各位,提了一个幼稚的问题,却得到更高深的答案,学到了更多的东西

  全程只有我一个人啦  没有各位哈哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-22 16:19:49 | 显示全部楼层
Twilight6 发表于 2020-6-22 16:19
全程只有我一个人啦  没有各位哈哈

好吧,好久没有混论坛了,已经完全没有意识了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-22 17:33:57 | 显示全部楼层
我来学习一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-9 04:29:49 From FishC Mobile | 显示全部楼层
刚刚遇到这个问题就看到楼主了,感激涕零
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-16 05:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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