Python 在数字串联后使用int()返回错误
我正在使用Python 在数字串联后使用int()返回错误,python,string,integer,concatenation,Python,String,Integer,Concatenation,我正在使用itertools.compositions\u和\u replacement列出所有可能的带有特定数字的数字。它们必须是字符串才能连接起来,但当我将它们转换回整数时,会产生一个错误 Traceback (most recent call last): File "p35.py", line 16, in <module> print int(num) ValueError: invalid literal for int() with base 10: ''
itertools.compositions\u和\u replacement
列出所有可能的带有特定数字的数字。它们必须是字符串才能连接起来,但当我将它们转换回整数时,会产生一个错误
Traceback (most recent call last):
File "p35.py", line 16, in <module>
print int(num)
ValueError: invalid literal for int() with base 10: ''
请注意,目标不是打印num
。我只需要把它们转换成整数,因为我需要对它们进行一些数值运算。这正是复制错误的原因
如何在仍然能够将数字转换回整数的情况下合并这些数字?尝试以下方法:
for i in range(1, 6):
如果我们在
0
中启动范围
(默认起始值),我们将得到一个初始空列表,作为组合与替换
的结果,这将导致值为的num
,
,一个无效整数。对于内部循环中的第一次迭代,您得到的是“”,这是一个空字符串。和int()不能对空字符串进行操作。所以只需检查num是否有如下值:
import ast
from itertools import combinations_with_replacement
for i in range(3):
for j in combinations_with_replacement(['1','3','7','9'],i):
num =''.join(j)
if num:
print int(num)
打印
num
和j
并尝试找出发生了什么异常消息不可能更清楚…当我只打印num
时,只有数字。我必须删除字符串的空字符串部分吗?这对我来说真的没有意义。我的印象是数字之间存在空字符串,这就是为什么会出现错误。我现在意识到第一次迭代只返回一个空字符串,这就是产生错误的原因。
import ast
from itertools import combinations_with_replacement
for i in range(3):
for j in combinations_with_replacement(['1','3','7','9'],i):
num =''.join(j)
if num:
print int(num)