python shell 3.5.2混淆类型转换

时间:2016-07-02 16:06:19

标签: python shell type-conversion

您好我是一般的编程新手,我正在阅读教程并进入类型转换部分并尝试不同的场景。所以问题是当我使用输入函数,如

int (input("Enter a number")) 

当我输入一个整数时它很好但是如果我输入一个浮点数就会返回错误

Traceback (most recent call last):
  File "<pyshell#43>", line 1, in <module>
    int(input("Enter a number:"))
ValueError: invalid literal for int() with base 10: '1.2'

如果我尝试相同的逻辑并用float替换int并输入一个整数,则shell返回一个浮点就好了。我在Windows 7机器上使用Python IDLE 3.5。希望这是有道理的。感谢

1 个答案:

答案 0 :(得分:0)

您无法直接将显示浮点数的字符串转换为int。这是有道理的,因为当用户输入浮点数时,它不应该静默地#34;被转换为最接近的整数。相反 - 将显示整数的字符串转换为float - 没有问题,因为每个整数(除非它非常大)同样可以表示为浮点数

但是,您可以将字符串转换为float,然后将float转换为int

>>> int(float(input("Enter a number: ")))
Enter a number: 1.2
1