Also habe ich diesen Code und er soll ein Tupel mit allen Primzahlen darin ausgeben. Aber stattdessen druckt es nur ein leeres Tupel aus ...allPrimes druckt ein leeres Tupel aus Python
Kann mir jemand sagen warum? Ich muss auch ein Kind verwenden.
def isPrime(number):
for i in range(2,int(number**(0.5))+1):
if number % i == 0:
return False
else:
return True
def allPrimes(number):
tup=()
for i in range(1,number):
if isPrime(i) == True:
tup += (i,)
print(tup)
allPrimes(26)
ist hier der richtige Code
def isPrime(number):
if number < 2:
return False
for i in range(2, int(number ** (0.5)) + 1):
if number % i == 0:
return False
return True
def allPrimes(number):
tup=()
for i in range(1,number):
if isPrime(i) == True:
tup += (i,)
print(tup)
allPrimes(26)
out[1]: (2, 3, 5, 7, 11, 13, 17, 19, 23)
Ich habe gerade einige Änderungen an meinem Code vorgenommen und es funktioniert immer noch nicht. – drewteriyaki
Ich muss ein Tupel verwenden, es ist für eine Assaignment – drewteriyaki
Es ist normalerweise besser, eine "Liste" zu verwenden, um es aufzubauen. Auch wenn es am Ende ein "Tupel" sein muss, ist es viel schneller, die "Liste" zu erstellen und dann am Ende in "Tupel" umzuwandeln, als ständig ein neues "Tuple" -Element zu erzeugen. Initialisiere einfach ret = [] ', ändere' tup + = (i,) 'in' ret.append (i) ', und wenn du' zurückkommst/'druckst, mache' print (tuple (ret)) 'oder' return tuple (ret) 'um zu konvertieren. – ShadowRanger