Ich versuche, eine Liste von Primzahlen mit der this Methode zu generieren. Ich muss jede Zahl 2 ... n durchschleifen und auf Vielfache von 2 ... n prüfen. Aus irgendeinem Grund scheint die falsche Liste geändert zu werden.Python falsche Liste ändern?
import sys
import argparse
import math
parser = argparse.ArgumentParser(description='find the largest prime factor of a number')
parser.add_argument('n', type=int, help='number')
args = parser.parse_args()
sieve = []
for i in range(2,args.n+1): sieve.append(i) # tried int(i)
copy1 = sieve # tried making extra copies. . .
copy2 = sieve
copy3 = sieve
#print int(math.sqrt(args.n))
for index, i in enumerate(copy1):
#print index, i
for ii in copy2:
#print ii
if i % ii == 0:
sieve[index]= None
print sieve
bekomme ich folgende Fehlermeldung:
Traceback (most recent call last):
File "3.py", line 22, in <module>
if i % ii == 0: TypeError: unsupported operand type(s) for %:
'int' and 'str'
Diese Verwirrung ist so üblich ... alle Material auf der Sprache (und auf allen Sprachen mit ähnlicher Semantik, BTW) sollte eine riesige rote Box mit einer Zusammenfassung davon enthalten. – delnan
delnan: Außerdem wird beschrieben, wie Fließkommaarithmetik funktioniert. :-) – Ken
Und in Java String == String ist nicht das, was Sie tun möchten. – Falmarri