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)