TypeError:%:'list'和'int'|的不支持的操作数类型非常有趣的案例?

时间:2015-11-12 12:58:26

标签: python

x_=[range(1,1000000)]
def pr(x_):
        for a in x_:
                # is type(a) int ?? 
                if a==2 or  a==3 :
                        x_[a-1]=0
                        continue
                for j in  range(2,a):
                        if(a%j==0):
                                x_[a-1]=0
                                break
pr(x_)

TypeError:%:'list'和'int'|的不支持的操作数类型非常有趣的案例?

1 个答案:

答案 0 :(得分:1)

x_=[range(1,1000000)]

这会导致x_成为[[1, 2, 3, ... 999999]]。请注意两个括号。它是一个双重嵌套的列表,因此a将是一个列表而不是一个int。如果您只想让a成为int而x_成为[1, 2, 3, ... 999999],请尝试

x_ = range(1,1000000)