2
我已经写如果相等,误差比较这代码:类型错误:NoneType,可以当大于
def reclen(n):
for i in range(1,n):
if (10**i)%n==1:
return(i)
for j in range(1,20):
if reclen(j)==6:
print(j)
它将运行,1-20满足l之间输出所述整数/ N =具有6个重复位。如果我在第二循环中改变子句:
for j in range(1,20):
if reclen(j)>6:
print(j)
我期望得到满足1-2 1之间的整数/ N = 6个或更多的重复数字,而是,我得到一个错误,告诉我有一个类型错误。我已经在所有输出中尝试了抹灰int()函数,但似乎我不允许将输出作为任何东西,但确切地等于一个值。
它适合我!第二个子句输出17,19 - 我正在使用anaconda(python 2.7.9) – farhawa
请注意,'None'可以与python2.7中的int进行比较 - 但结果是依赖于实现的IIRC。 – mgilson
奇怪的是,它将在不同的版本中工作...问题源于reclen()输出“无”似乎?当定义reclen()时,我可以这样写: def reclen(n): 对于i在范围内(1,n + 1): if(10 ** i)%n == 1: return(i) return(0) 并且代码将返回17,19,如在此实现中所预期的那样。**我无法编辑回复以正确显示代码 – Jokkeyo