[英]Converting string to int in python
a="1234"
for i in range(0,4):
for k in range(i,4):
s=int(a[i:k])
print s
输出:
Traceback (most recent call last):
File "C:/Python27/Solutions/test.py", line 4, in <module>
s=int(a[i:k])
ValueError: invalid literal for int() with base 10: ''
谁能告诉我为什么我得到这个错误? 我只想打印:1 12 123 1234 2 23 234,依此类推...
>>> a= "1234"
>>> a[0:0] # in slice if start and end is same you will get empty string
''
>>> int(a[0:0])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: ''
>>>
我想你想要这个吗?
>>> for i in range(3):
... for k in range(i,4):
... print int(a[i:k+1])
...
1
12
123
1234
2
23
234
3
34
您收到此错误是因为循环的第一次迭代(i=0,k=0)
需要a[0:0]=''
(空字符串)。 字符和数字字符串可以转换为整数,但是空字符串不是字符或字符串。 没有字符。
如果要保护这种情况,则循环将随后采用a的子字符串(example '123', i=0, k=3)
并且可以将其转换为整数123。其余情况应仅输出所需的整数精细。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.