Snažím sa jednoducho vytlačiť nájdené prvočísla. Chcem pridať k hlavnej [], ale dostanem TypeError
line 63, in isprime
primes += n
TypeError: "int" object is not iterable
Kód:
def isprime(n):
primes = []
if n == 1:
print "1 is special"
return False
for x in range(2, n):
if n%x == 0:
print "{} equals {} x {}".format(n, x, n // x)
return False
else:
primes += n
print (n, "is a prime number")
return True
for n in range(1, 1000):
isprime(n)
odpovede:
4 pre odpoveď č. 1+=
na a list
je určený na zjednotenie jedného list
do iného. Ak chcete pridať jeden prvok na koniec list
, môžete buď urobiť jednoduché:
primes.append(n)
alebo dočasne list
povoliť operáciu zoraďovania zoznamov do práce (tento prístup je pomalší a len triviálne súhrnnejší, s väčším zapojením pamäte; .append
pokiaľ nie je potrebné pridať viac ako jeden prvok naraz, v takom prípade +=
prístupové stupnice lepšie pre literály s viacerými prvkami):
primes += [n]
0 pre odpoveď č. 2
primes
je zoznam, aby ste ho pridali n
, čo je int
, na to, musíte použiť append
metóda. vymeniť primes += n
s primes.append(n)
.