from math import log
lliste = [2]
bovengrenspriem = eval(input('geef een getal van die je weten wil welke priemgetal het is? ',))
while not type(bovengrenspriem) == int:
bovengrenspriem = eval(input('Foute invoer, geef een getal van die je weten wil welke priemgetal het is? ',))
if type(bovengrenspriem) == int:
break
counter = 2
x = 2
while lliste[-1] < bovengrenspriem or lliste[-1]== bovengrenspriem:
liste = []
for i in range (1,counter+1):
if counter % i == 0:
liste.append(i)
if len(liste) == 2:
lliste.append(counter)
counter += 1
else:
counter +=1
lliste[:]= [float(p)for p in lliste]
lliste[:]= [log(x[t]) for t in lliste]
错误就在这里。对于'int'对象不可下标,浮点行是我在测试,如果将我的列表中的每个数字转换成float可以修复它,但它似乎不起作用
^{pr2}$
第一件事是。。。没有理由在这里使用eval有一种更简单的方法:
即:
^{pr2}$至于错误信息。。。。你试图在
问题似乎在于:
x[t]期望x是一个列表/数组等,而x被定义为2(一个int),因此int是不可订阅的。在
另外(除了真正的问题,你可以做一些简单的改进):
在
^{pr2}$计数器总是增加的,因此您可以写下:
你可以改变
进入
用英语写评论(但是我来自荷兰,所以我懂荷兰语)。在
尽量使用好的命名变量和大写字母。列斯特可能是一个列表,但是第一个l和最后一个e是什么?莱斯特会更清楚,但最好是像primeListEnd(?)或者更合适的。在
改变
比如说:
这将保存第一个重复原始行的副本。在
但是,更好的方法是使用单独的布尔值
相关问题 更多 >
编程相关推荐