【问题标题】:python shell 3.5.2 confusion over type conversionpython shell 3.5.2对类型转换的混淆
【发布时间】:2016-07-02 16:06:18
【问题描述】:

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

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 返回一个 float 就好了。我在 Windows 7 机器上使用 Python IDLE 3.5。希望这是有道理的。谢谢

【问题讨论】:

    标签: python shell type-conversion


    【解决方案1】:

    您不能将显示浮点数的字符串直接转换为int。这是有道理的,因为当用户输入一个浮点数时,它不应该“默默地”转换为最接近的整数。相反——将显示整数的字符串转换为float——问题不大,因为每个整数(除非它非常很大)都可以同样很好地表示为浮点数。

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

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

    【讨论】:

    • 好吧,这是有道理的。谢谢你让我放心。我以为我的程序有问题。大声笑
    • @mcmjrty 很高兴我能帮上忙;我不太确定我是否理解了这个问题。
    猜你喜欢
    • 2011-12-17
    • 2011-05-19
    • 2017-02-11
    • 1970-01-01
    • 2012-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-03
    相关资源
    最近更新 更多