【发布时间】:2018-08-03 08:06:24
【问题描述】:
我正在关注https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00sc-introduction-to-computer-science-and-programming-spring-2011/unit-2/lecture-10-hashing-and-classes/MIT6_00SCS11_lec10.pdf 的讲座,我正在查看函数 readVal 中最后一页的代码
我正在尝试运行以下代码
val=input('type an int: ')
try:
val=int(val)
print(val)
except ValueError:
print('not an int')
现在如果我输入一个整数说 2 一切都很好,它会打印 2。但是,如果我输入一个浮点数说 2.0 或字符串“2”,它会引发异常并打印语句“not an int”,我发现令人困惑的是,当 val 为 2.0 或 '2' 时,它无法将其转换为适当的类型,因为如果我运行这段代码
val = '2'
val = int(val)
print(val)
然后我正确地得到 2 没有任何问题。为什么会这样?我非常感谢任何帮助,因为我渴望完全理解我看到的每一段代码。谢谢!
【问题讨论】:
-
当您输入“2”时,这意味着您在转换为 int 之前的 val 等于“2”。它不是整数。
标签: python string error-handling floating-point int