关于 零基础入门学习的第二课里 int的用法
关于零基础入门学习的第二课里面有使用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")
请输入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'
>>> 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")
Twilight6 发表于 2020-6-22 15:56
int 不能将小数字符串转化为整型
你可以用 float:
>>> int(1.52)
1
这样又能出来结果,是怎么解释呢 hz310000 发表于 2020-6-22 15:57
>>> int(1.52)
1
这个是浮点型 而不是小数字符串 Twilight6 发表于 2020-6-22 15:56
int 不能将小数字符串转化为整型
你可以用 float:
你的意思是 =input是把数字转换成字符串了,对吧 如果 input的结果是字符串,那后面的字符串比较大小1-100,又是怎么比较的呢,不是只有数字才能比较大小吗,如果input的结果是数字,那int为啥不能在脚本中进行取整呢,因为单独运行int小数都是可以的 hz310000 发表于 2020-6-22 15:58
你的意思是 =input是把数字转换成字符串了,对吧
嗯 input 返回的就是字符串 Twilight6 发表于 2020-6-22 16:00
嗯 input 返回的就是字符串
如果input返回的是字符串,那int也是针对字符串进行整形?int不是也可以对数字进行整形的吗,也就是说int对字符串进行整形的时候不能是小数,整形的意义不是把小数变成整数去掉小数点后面的值吗,但是如果int对字符串进行整形的意义又是什么呢?因为首先int对字符串的要求是没有小数,既然没有小数就没有整形的必要了 hz310000 发表于 2020-6-22 16:00
如果 input的结果是字符串,那后面的字符串比较大小1-100,又是怎么比较的呢,不是只有数字才能比较大小吗 ...
int 将字符串转为整型了,并不是比较字符串,还是比较整型之间的大小,input是接收用户输入并将输入的值转为字符串返回
你这 int 就是将字符串转为 整型啊,就是整数
如果字符串比较大小是 依次比较 ASCII码值的
hz310000 发表于 2020-6-22 16:04
如果input返回的是字符串,那int也是针对字符串进行整形?int不是也可以对数字进行整形的吗,也就是说int ...
不是如果 input 是返回字符串,是一定返回的是字符串!
这里的 int 就是将字符串转化为整型 , 也就是整数
而字符串中的 . int 是无法识别出来是 小数点的意思 导致无法转化 本帖最后由 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 转化为浮点型
>>> b=int("1")
>>> c=b+2
>>> print (c)
3
int 在这里把字符串变成了数字,不然后面的加法就是错的,结果也不会出来3,所以我还是不明白,int函数出来的值到底是字符串还是数字
或许int只能对整数型的字符串,或者数值型的小数?但是不能对小数型的字符串? >>> 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会取整 hz310000 发表于 2020-6-22 16:15
>>> b=int("1")
>>> c=b+2
>>> print (c)
int 是将其他类型的值转为整型啊
字符串是 str 谢谢各位,提了一个幼稚的问题,却得到更高深的答案,学到了更多的东西 hz310000 发表于 2020-6-22 16:18
谢谢各位,提了一个幼稚的问题,却得到更高深的答案,学到了更多的东西
{:10_245:}全程只有我一个人啦没有各位哈哈 Twilight6 发表于 2020-6-22 16:19
全程只有我一个人啦没有各位哈哈
好吧,好久没有混论坛了,已经完全没有意识了 我来学习一下{:10_297:} 刚刚遇到这个问题就看到楼主了,感激涕零
页:
[1]
2