将小数输入转换为int时出错

帕尔维兹·卡里姆利(Parviz Karimli)

在我的阶乘计算程序中,我从用户那里得到一个数字

n=float(input("n=")) #sign

我想更改它,以便将数字转换为整数而不是浮点数:

n=int(input("n=")) #sign

但这在我输入“ 4.5”之类的浮点数时不起作用。错误代码为:

Traceback (most recent call last):
  File "C:\Python33\factorial of n natural numbers.py", line 5, in <module>
    n=int(input("n="))
ValueError: invalid literal for int() with base 10: '4.5'

自从我决定输入浮点数以来,我就已经将int数转换为浮点数,但是它似乎尚未转换,或者是什么……

该程序仍可与第一个版本一起使用,但是那里出了什么问题?这些转换之间有什么区别?

优雅的

问题在于该input()函数返回一个字符串对象:

>>> n = input("n = ")
n = 4.5

>>> x
>>> '4.5'
>>> type(n)
<class 'str'>

文档所述,当您不将表示所谓整数文字的字符串实例传递给Pythonsint()函数时,您将获得ValueError

>>> int(n)
Traceback (most recent call last):
ValueError: invalid literal for int() with base 10: '4.5'

为避免这种情况,您可以捕获此错误或将字符串首先转换为浮点数(使用float()-因此数字类型并不重要-然后转换为int

>>> int(float(n))
    4

希望这可以帮助 :)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将double转换为int时出错

来自分类Dev

将int转换为NSNumber时出错

来自分类Dev

将nvarchar转换为int数据类型时出错

来自分类Dev

将数据类型NVarchar转换为int时出错

来自分类Dev

SQL:将varchar转换为int时出错

来自分类Dev

从unsigned int转换为float时出错

来自分类Dev

在MVC中转换为int时出错

来自分类Dev

从 Int 转换为 Double 时出错

来自分类Dev

将数据类型nvarchar转换为int时出错-执行存储过程时

来自分类Dev

将float转换为datetime时出错

来自分类Dev

将DICOM转换为JPEG时出错

来自分类Dev

将Object []转换为byte []时出错

来自分类Dev

将float转换为datatime时出错

来自分类Dev

将varchar转换为datetime时出错

来自分类Dev

将jpg转换为pdf时出错

来自分类Dev

将jpg转换为pdf时出错

来自分类Dev

将double转换为BigInteger时出错

来自分类Dev

将kml转换为geojson时出错

来自分类Dev

将mysql转换为mysqli时出错

来自分类Dev

将float转换为datatime时出错

来自分类Dev

将DICOM转换为JPEG时出错

来自分类Dev

将IplImage转换为Mat时出错

来自分类Dev

将varchar转换为bigint时出错

来自分类Dev

将Range转换为数组时出错

来自分类Dev

将 rxGlm 转换为 GLM 时出错

来自分类Dev

将小数转换为小数

来自分类Dev

将int转换为double时,如何显示小数和小数点后两位?

来自分类Dev

将数据类型nvarchar转换为int t时出错

来自分类Dev

将数据类型varchar转换为int时出错(存储过程C#ASP.NET)