很可能是一个愚蠢的问题,但我想知道为什么python不能从一个实际上是浮点数的字符串中产生一个整数.
>>> int(1.0)
1
>>> int(float('1.0'))
1
Run Code Online (Sandbox Code Playgroud)
但
>>> int('1.0')
Traceback (most recent call last):
File "<pyshell#17>", line 1, in <module>
int('1.0')
ValueError: invalid literal for int() with base 10: '1.0'
Run Code Online (Sandbox Code Playgroud)
任何人都可以澄清为什么不能一步完成它?
直接来自以下文档int:
如果x不是数字或者给定了base,那么x必须是表示基数为整数的字符串或Unicode对象.
以下是如何定义基数中的整数文字:
longinteger ::= integer ("l" | "L")
integer ::= decimalinteger | octinteger | hexinteger | bininteger
decimalinteger ::= nonzerodigit digit* | "0"
octinteger ::= "0" ("o" | "O") octdigit+ | "0" octdigit+
hexinteger ::= "0" ("x" | "X") hexdigit+
bininteger ::= "0" ("b" | "B") bindigit+
nonzerodigit ::= "1"..."9"
octdigit ::= "0"..."7"
bindigit ::= "0" | "1"
hexdigit ::= digit | "a"..."f" | "A"..."F"
Run Code Online (Sandbox Code Playgroud)
正如你所看到.的那样,词汇定义中没有.
另外值得一提的是,您希望在静态类型语言中自然可以实现,而Python则采用动态类型
| 归档时间: |
|
| 查看次数: |
272 次 |
| 最近记录: |